1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 freopen("nums.in","r",stdin); 7 freopen("nums.out","w",stdout); 8 int a[1001],n; 9 cin>>n; 10 a[1]=1; 11 for(int s=2;s<=n;s++) 12 { 13 a[s]=0; 14 for(int i=1;i<=s/2;i++) 15 { 16 a[s]+=a[i]; 17 } 18 a[s]++; 19 } 20 cout<<a[n]; 21 return 0; 22 }
w【问题描述】
w我们要求找出具有下列性质数的个数(包括输入的自然数n)。先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:
w不作任何处理;
w在它的左边加上一个自然数,但该自然数不能超过原数的一半;
w加上数后,继续按此规则进行处理,直到不能再加自然数为止。
w输入:自然数n(n≤1000)
w输出:满足条件的数
w【输入样例】
w 6 满足条件的数为 6 (此部分不必输出)
w 16
w 26
w 126
w 36
w 136
w【输出样例】
w 6