题目描述
我们要求找出具有下列性质数的个数(包含输入的正整数 nnn)。
先输入一个正整数 nnn(n≤1000n \le 1000n≤1000),然后对此正整数按照如下方法进行处理:
不作任何处理;
在它的左边加上一个正整数,但该正整数不能超过原数的一半;
加上数后,继续按此规则进行处理,直到不能再加正整数为止。
输入格式
1个正整数 n(n≤1000n \le 1000n≤1000)
输出格式
1个整数,表示具有该性质数的个数。
输入输出样例
输入 6 输出 6
说明/提示
满足条件的数为
6,16,26,126,36,136
题目分析
我们首先举例来看看其中的规律。
n=0,n=1,答案为1;
n=2,n=3,答案为2;
n=4,n=5,答案为4;
可以看到奇数和它前面一个偶数的答案是一样的,这里,根据分析,我们也可以知道,当n为奇数,n/2向下取整和n为偶数,n/2的值是相同的,所以n为奇数和n为这个奇数前面的偶数的结果是一样的。
而当这个数为偶数的时候,结果为前一个偶数(奇数)+折半后的结果。
这样自底向上的相当于是一个动态规划的过程。