NOIP2001数的计算
题目描述
我们要求找出具有下列性质数的个数(包含输入的自然数n)。先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
1. 不作任何处理;
2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3. 加上数后,在新加上数的左边继续按此规则进行处理,直到不能再加自然数为止.
例如: 输入: 6
满足条件的数为 6 (此部分不必输出)
16
26
126
36
136
输出: 6
输入
只有一行一个整数,为自然数n(n<=1000)。
输出
输出满足条件数的个数。
样例输入
6
样例输出
6
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include<iostream> using namespace std; int main() { int a[1001],n,i,s; a[1]=1; cin>>n; for(s=2;s<=n;s++) { a[s]=0; for(i=1;i<=s/2;i++) { a[s]+=a[i]; } a[s]++; } cout<<a[n]; } |
[…] NOIP2001数的计算|NOIP赛题|模拟|HZWER:We are OIers […]