1225: Give me the answer
Description
Farmer John commanded his cows to search for different sets of numbers that sum to a given number.
The cows use only numbers that are an integer power of 2. Here are the possible sets of numbers that
sum to 7:
- 1+1+1+1+1+1+1
- 1+1+1+1+1+2
- 1+1+1+2+2
- 1+1+1+4
- 1+2+2+2
- 1+2+4
Help FJ count all possible representations for a given integer N (1 <= N <= 1 ,000,000)
Input
The first line of the input contains the number of test cases in the file. And t he first line of each case
contains one integer numbers n
Output
For each test case, output a line with the ans % 1000000000.
Sample Input
1
7
Sample Output
6
HINT
类似于跳台阶
Code:
#include<bits/stdc++.h>
using namespace std;
const int mod=1000000000;
int f[1000005];
void init()
{
int i,sum;
f[0]=1,f[1]=1;
for(i=2;i<=1000000;i++)
if(i%2==0)
f[i]=(f[i-2]+f[i/2])%mod;
else
f[i]=f[i-1];
}
int main()
{
int t,n;
init();
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",f[n]);
}
return 0;
}
拓展: