题目地址:点击打开链接
AC代码:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
long long a[1000010];
int main()
{
int i,n;
a[1] = 1;
a[2] = 2;
for(i=3; i<=1000000; i++)
{
if(i % 2 == 1)
a[i] = a[i-1];
else
a[i] = (a[i/2] + a[i-2]) % 1000000000;//开始把MXA赋为1e10,老是错误,就直接写数字了
}
while(~scanf("%d",&n))
{
printf("%I64d\n",a[n]);
}
return 0;
}