标签:i++ 输入输出 for 输出 nbsp html namespace main ++
断更了好久,现在补上...
我们要求找出具有下列性质数的个数(包含输入的自然数nnn):
先输入一个自然数nnn(n≤1000n \le 1000n≤1000),然后对此自然数按照如下方法进行处理:
不作任何处理;
在它的左边加上一个自然数,但该自然数不能超过原数的一半;
加上数后,继续按此规则进行处理,直到不能再加自然数为止.
输入格式:
111个自然数nnn(n≤1000n \le 1000n≤1000)
输出格式:
111个整数,表示具有该性质数的个数。
这道题比较困难,先上代码:
1 #include<iostream> 2 //F[I]=F[1]+F[2]+F[3]+F[4]+...+F[I/2] 3 int main() 4 { 5 using namespace std; 6 int n; 7 cin >> n; 8 int sum[1001] = {}; 9 sum[1] = 1; 10 sum[2] = 2; 11 for (int i = 3; i <= n; i++) { 12 for (int j = 1; j <= i / 2; j++) { 13 sum[i] += sum[j]; 14 } 15 sum[i]++; 16 } 17 cout << sum[n]; 18 return 0; 19 }
第二行的公式是推出来的,这道题不容易,当公式背下来吧。
标签:i++ 输入输出 for 输出 nbsp html namespace main ++
原文地址:https://www.cnblogs.com/hsjj/p/P1028.html