NOIP 2001 数的计数
Description
先输入一个自然数n(n≤3000000),然后对此自然数按照如下方法进行处理
1•不作任何处理:
2•在它的左边加上一个自然数,但该自然数不能超过原数的一半;
3•加上数后,继续按此规则进行处理,直到不能再而 自然数为止。
例如
n=6
6
16
26
126
36
136
所以满足要求的个数为6。
Input
一个整数n(1<=n<=3000000)
Output
一个整数,表示解的个数(保证不超过50位)
Sample Input
6
Sample Output
6
公式
n为奇数时,h[n]=h[n-1]
n为偶数时,h[n]=h[n-1]+h[n/2]
var a:array[1..1200] of longint; i,n:longint; begin readln(n); a[1]:=1; for i:=2 to n do if odd(i) then a[i]:=a[i-1] else a[i]:=a[i-1]+a[i div 2]; writeln(a[n]); end.