http://ecustoj.sinaapp.com/problemshow.php?pro_id=45
#include<cstdio> #include<cstring> int N,s[1000005],i=3; int main() { s[1]=1; s[2]=2; while (i<=1000000) { s[i]=s[i-1]; i++; s[i]=(s[i-2]+s[i>>1])%1000000000; i++; } while(scanf("%d",&N)!= EOF) printf("%d\n",s[N]); return 0; }