#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; int num = 0; int min = 1000; for(i=0; i > num; if(num < min) { min = num; } } cout << min; return 0; }
这题这样是简单高效的方法。
P5719 【深基4.例3】分类平均#includeusing namespace std; int main() { int n = 0, k = 0; cin >> n >> k; int i = 0; int sum1 = 0, sum2 = 0; int count1 = 0, count2 = 0; for(i=1; i<=n; i++) { if(i%k == 0) { sum1 += i; count1++; } else { sum2 += i; count2++; } } printf("%.1f %.1fn", sum1*1.0/count1, sum2*1.0/count2); return 0; }
#includeusing namespace std; int main() { int n = 0, k = 0; int sum = 0; cin >> n >> k; int i = 0; for(i=k; i<=n; i+=k) { sum += i; } printf("%.1f ", sum*1.0/(n/k)); sum = n*(1+n) / 2 - sum; printf("%.1fn", sum*1.0/(n-n/k)); return 0; }
2法,被k整除,即为k的倍数。和可以用高斯求和再减。
P5720 【深基4.例4】一尺之棰#includeusing namespace std; int a, day = 1; int main() { cin >> a; while(a != 1) { a /= 2; day++; } cout << day; return 0; }
声明全局也可以赋初值。
#includeusing namespace std; int a, day = 1; int main() { cin >> a; while(a != 1) { a >>= 1; day++; } cout << day; return 0; }
也可以用右移代替除2的 *** 作。
P5721 【深基4.例6】数字直角三角形#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; int j = 0; int num = 1; for(i=0; i 这题解方法真是千奇百怪,还是用这个吧,定义一个num用完后自加。
P1009 [NOIP1998 普及组] 阶乘之和这题暂放
P1980 [NOIP2013 普及组] 计数问题#includeusing namespace std; int main() { int n = 0, x = 0; cin >> n >> x; int i = 0; int count = 0; int tmp = 0; for(i=1; i<=n; i++) { tmp = i; while(tmp) { if(tmp%10 == x) { count++; } tmp /= 10; } } cout << count << 'n'; return 0; } P1035 [NOIP2002 普及组] 级数求和
我的
#includeusing namespace std; int main() { int k = 0; cin >> k; int n = 1; double sum = 0.0; while(sum <= k) { sum += 1.0/n; n++; } cout << n-1 << endl; return 0; } #includeusing namespace std; int main() { int k = 0; cin >> k; int n = 0; double sum = 0.0; for(; sum<=k; ++n, sum+=1.0/n) ; cout << n; return 0; } 或者这样,注意两者区别++n和n++。
P2669 [NOIP2015 普及组] 金币
#includeusing namespace std; int main() { int k = 0; cin >> k;//k为总天数 int i = 0; int j = 0; int n = 0; int sum = 0; for(i=1; ; i++) { for(j=1; j<=i; j++) { if(n < k) { sum += i; n++; } else { cout << sum; return 0; } } } return 0; } 首先第一个循环因为不知道天数中每天的金币中加到多少,所以中间为空,代表每天的金币数,第二个循环表示之后的天数,n为天数,比总天数k小时,加到和中,n多一天,否则n>=k时输出sum,并及时退出。
P5722 【深基4.例11】数列求和
#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; int sum = 0; for(i=1; i<=n; i++) { sum += i; } cout << sum; return 0; } O(1)
#includeP5723 【深基4.例13】质数口袋using namespace std; int main() { int n = 0; cin >> n; int i = 0; int sum = 0; sum = n*(1+n) / 2; cout << sum; return 0; } #includeusing namespace std; int main() { int L = 0; cin >>L; int i = 0; int sum = 0; int j = 0; int count = 0; for(i=2; ;i++) { for(j=2; j<=i/2; j++) { if(i % j == 0) { break; } } if(j > i/2) { sum += i; if(sum > L) { break; } cout << i << 'n'; count++; } } cout << count; return 0; } 注意,sum==l时也满足,所以不要忘了输出。
[USACO1.5]回文质数 Prime Palindromes
暂放
小玉在游泳
#includeusing namespace std; int main() { double n = 0.0; cin >> n; int count = 0; double sum = 0.0; double step = 2.0; while(sum < n) { sum += step; step *= 0.98; count++; } cout << count; return 0; } [NOIP2011 普及组] 数字反转
#includeusing namespace std; int main() { int n = 0; cin >> n; int ans = 0; while(n) { ans = ans*10 + n%10; n /= 10; } cout << ans; return 0; } 注意负号是没有影响的,比如-324%10=-320+(-4) = 余数-4。
P1720 月落乌啼算钱(斐波那契数列)#include#include using namespace std; int main() { int n = 0; cin >> n; double ans = 0.0; double n1 = 0.0, n2 = 0.0; n1 = pow(((1+sqrt(5)) / 2), n); n2 = pow(((1-sqrt(5)) / 2), n); ans = (n1-n2) / sqrt(5); printf("%.2fn", ans); return 0; } P5724 【深基4.习5】求极差 / 最大跨度值
#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; int num = 0; int max = 0; int min = 1000; for(i=0; i > num; if(num > max) { max = num; } if(num < min) { min = num; } } cout << max-min << endl; return 0; } 也可以用C++自带的函数
#includeP1420 最长连号using namespace std; int main() { int n = 0; cin >> n; int i = 0; int num = 0; int Max = 0; int Min = 1000; for(i=0; i > num; Max = max(num, Max); Min = min(num, Min); } cout << Max-Min << endl; return 0; } #includeusing namespace std; int n, num1, i, num2, countt = 1, maxx = 1; int main() { cin >> n >> num1; for (i = 2; i <= n; i++) { cin >> num2; if (num2 > num1 && num2 - 1 == num1) { countt++; } else { countt = 1; } if (countt > maxx) { maxx = countt; } num1 = num2; } cout << maxx << endl; return 0; } 在我试着用全局声明变量时发现一个错误,即不能与库函数冲突,大家也要注意!
P1075 [NOIP2012 普及组] 质因数分解#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; for(i=2; i<=n/2; i++) { if(n%i == 0) { cout << n/i << endl; break; } } return 0; } 这题主要是审题意,正整数n是两个不同的质数的乘积。所以只要从2开始,假设能被x整除,然后一个数能被x整除,那么被n/x也能整除。
P5725 【深基4.习8】求三角形#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; int j = 0; int num = 1; for(i=0; i 这边直接用%02d非常方便。
P5726 【深基4.习9】打分
#includeusing namespace std; int main() { int n = 0; cin >> n; int i = 0; int sum = 0; int num = 0; int Max = 0; int Min = 10; for(i=0; i > num; Max = max(num, Max); Min = min(num, Min); sum += num; } sum -= Max + Min; printf("%.2fn", sum*1.0/(n-2)); return 0; } 注意无论是double型的还是float型的,输出的占位符都为%f,没有%lf这一说。
P4956 [COCI2017-2018#6] Davor
#includeusing namespace std; int main() { int n = 0; cin >> n; n /= 52*7; if(n <= 103) { cout << n-3 << endl << 1; } else if(n%3 == 0) { cout << 99 << endl << (n-99)/3; } else if(n%3 == 1) { cout << 100 << endl << (n-100)/3; } else if(n%3 == 2) { cout << 98 << endl << (n-98)/3; } return 0; } 注意这边要分两种一个是n<=103时,这种不管什么n%3是什么情况都是n-3,而别一种需要讨论。
#includeusing namespace std; int main() { int n = 0; cin >> n; int k = 1; int x = 0; while(1) { for(x=100; x>=1; x--) { if(52*7*(x+3*k) == n) { cout << x << endl << k; return 0; } } k++; } return 0; } x有范围可以一个个比较,如果不成立则将k自加。
P1089 [NOIP2004 提高组] 津津的储蓄计划
#define _CRT_SECURE_NO_WARNINGS 1 #includeusing namespace std; int main() { int m = 0; int i = 0; int cost = 0; int save = 0; for (i = 0; i < 12; i++) { m += 300; cin >> cost; m -= cost; if (m < 0) { cout << -(i + 1) << endl; return 0; } if (m / 100) { save += m / 100 * 100; } m = m % 100; } cout << m + save * 1.2; return 0; } 这题我有两个错误,1是题意没看清,钱少于0输出的是月份,2是我原先给钱是最后给300,到12月的时候给了13个月的钱,所以一直没对。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)