1. 程式人生 > >51nod 1383 整數分解為2的冪

51nod 1383 整數分解為2的冪

#include<bits/stdc++.h>
using namespace std;

const int MAXN=1000100;
const int mod=1e9+7;
int dp[MAXN];

int main()
{
	int i,n;
	dp[0]=1;
	for(i=1;i<MAXN;i++)
	{
		if(i&1)
			dp[i]=dp[i-1];
		else
			dp[i]=(dp[i-1]+dp[i>>1])%mod;
	}
	while(~scanf("%d",&n))
	{
		printf("%d\n",dp[n]);
	}
}