3381 - 数的计算

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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

先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理

l·不作任何处理:

2·在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3·加上数后,继续按此规则进行处理,直到不能再立生自然数为止。

题目输入

自然数n

题目输出

满足条件的数的个数

输入/输出样例

输入格式

6

输出格式

6

C++解答

//用f(n)表示自然数n所能扩展的数据总个数,则f(1)=1,f(2)=2,f(3)=2,f(4)=4,f(5)=4,f(6)=6,f(7)=6,f(8)=10,f(9)=10。
#include <cstdio>
int f[1001];
using namespace std;
int main()
{
    int n;
    int i, j;
    scanf("%d", &n);
    for(i = 1; i <= n; i++)
	{
        f[i] = 1;
        for(j = 1; j <= i / 2; j++)
		
            f[i] += f[j];
        
    }
    printf("%u\n", f[n]);
    return 0;
}