数的计数
数的计数
Time Limit:1000MS Memory Limit:65536K
Description
我们要求找出具有下列性质数的个数(包含输入的自然数n):
先输入一个自然数n(n <= 15725),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
Input
n (n <= 15725)
Output
满足条件的数据个数
Sample Input
6
Sample Output
6
Hint
满足条件的数为 6 (此部分不必输出)
16
26
126
36
136
Source
NOIP2001年第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛普及组试题1
1 //水题…… 2 #include<iostream> 3 using namespace std; 4 unsigned long long a[20000]={0}; 5 unsigned long long f(int n) 6 { if(n==1)return 1; 7 if(a[n]>0)return a[n]; 8 unsigned long long s=1; 9 for(int i=1;i<=n/2;i++)s+=f(i); 10 a[n]=s;return s; 11 } 12 int main(){ 13 int n;cin>>n; 14 cout<<f(n)<<endl; return 0; 15 }