2343 - 数的计算
我们要求找出具有下列性质数的个数(包含输入的自然数n):
<span style="line-height:1.5;">先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:</span>
1. 不作任何处理;
- 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止。
题目输入
每个测试文件只包含一组测试数据,每组输入一个自然数n(n<=1000)。
题目输出
对于每组输入数据,输出经过处理后的n的结果。
输入/输出样例
题目输入
6
题目输出
6
C语言解答
#include <stdio.h> int fan(int n) {int h=1,i; i=n/2; if(n==1) return 1; else for(;i>=1;i--) h=h+fan(i); return h;} int main() {int n; scanf("%d",&n); printf("%d",fan(n)); return 0; }
C++解答
#include <iostream> using namespace std; long long f[100001]; long long comp (long long n){ long long s=1,i; for (i=1;i<=n/2;i++){ if (!f[i]) f[i]=comp (i); s+=f[i]; } return s; } int main () { long long n; cin>>n; cout<<comp (n); return 0; }