这一题,主要就是找循环节,当是循环节有点大。
#include <iostream>
#include <cstring>
using namespace std;
int s[5000];
int main()
{
int t;
s[1]=1;s[2]=7;
for(int i=3;i<=4018;i++)
s[i]=(s[i-2]+(i-1)*(i-1)+i*(i*2-1))%2009;
while(cin>>t,t)
cout<<s[t%4018]<<endl;
return 0;
}