数的计数

来源:互联网 发布:23周b超数据 编辑:程序博客网 时间:2024/06/11 03:48

Problem Description

我们要求找出具有下列性质数的个数(包括输入的自然数n)。先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:
不作任何处理;
在它的左边加上一个自然数,但该自然数不能超过原数的一半;
加上数后,继续按此规则进行处理,直到不能再加自然数为止。

Input

输入有多组数据,每组数据为自然数n。

Output

对于每组数据输出满足条件的数的个数。

Sample Input

6

Sample Output

6Hint满足条件的数为6,16,26,126,36,136。
/*思路:n=0  0n=1  1n=2  2n=3  2n=4  4n=5  4n=6  6n=7  6....*/思路:递推,可用多种方法a[i]=a[i-2]+a[i/2];n=6=a[4]+a[3]   =2a[2]+a[3]   =2(a[0]+a[1])+a[3]   =2(1+1)+2   =6奇数=偶数 a[3]=a[2]#include<cstdio>#include<iostream>using namespace std;int main(){    int n,a[1005]={1,1},i;    while(scanf("%d",&n)!=EOF)    {        for(i=2;i<=1000;i++)//全部先得出            a[i]=a[i-2]+a[i/2];//递推关系式(图)        printf("%d\n",a[n]);//根据输入数字,输出相应的数组    }return 0;}

0 0
原创粉丝点击