### 题目描述

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
2) 1+1+1+1+1+2
3) 1+1+1+2+2
4) 1+1+1+4
5) 1+2+2+2
6) 1+2+4
Help FJ count all possible representations for a given integer N (1 <= N <= 1 ,000,000)

### 输入

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

### 输出

For each test case, output a line with the ans % 1000000000.

1
7

6

### 代码如下

``````#include<cstdio>
#include<iostream>
#include<cmath>
#include<memory.h>
using namespace std;
int dp[1000005];
int n;
int main()
{
int k=0,t;
while(pow(2,k+1)<1000000)
k++;
dp[0]=1;
for(int i=1;i<=1000000;i*=2)
{
for(int j=i;j<=1000000;j++)
dp[j]=(max(dp[j],dp[j-i]+dp[j])%1000000000);
}
scanf("%d",&t);
for(int p=0;p<t;p++)
{
scanf("%d",&n);
printf("%d
",dp[n]);
}
return 0;
}``````