2343 - 数的计算

我们要求找出具有下列性质数的个数(包含输入的自然数n):

<span style="line-height:1.5;">先输入一个自然数n(n&lt;=1000),然后对此自然数按照如下方法进行处理:</span> 

1. 不作任何处理;

  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;
}

时间限制 1 秒
内存限制 125 MB
讨论 统计
上一题 下一题