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).
给出一个N(1≤N≤10^6),使用一些2的若干次幂的数相加来求之.问有多少种方法
一个整数N.
方法数.这个数可能很大,请输出其在十进制下的最后9位.
没啥好说的。。。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> #include<iomanip> using namespace std; const int mod=1e9; int n; long long dp[1000010]; int main() { scanf("%d",&n);bool flag=1; dp[1]=1; for(int i=2;i<=n;i++) { if(flag)dp[i]=(dp[i-1]+dp[i/2])%mod; else dp[i]=dp[i-1]; flag^=1; } cout<<dp[n]; }