- #include <bits/stdc++.h>
- using namespace std;
- long long int DP[20017]={0};
- long long int compute(int a)
- {
- if(a==1)
- return DP[1] = 1;
- if(a==2)
- return DP[2] = 2;
- if(DP[a])
- return DP[a];
- else
- return DP[a]=(compute(a-2)+compute(a-1))%10007;
- }
- int main()
- {
- int n;
- while(cin>>n)
- {
- n=n%20016;
- cout<<compute(n)<<endl;
- }
- return 0;
- }#include <bits/stdc++.h>
- using namespace std;
- long long int DP[20017]={0};
- long long int compute(int a)
- {
- if(a==1)
- return DP[1] = 1;
- if(a==2)
- return DP[2] = 2;
- if(DP[a])
- return DP[a];
- else
- return DP[a]=(compute(a-2)+compute(a-1))%10007;
- }
- int main()
- {
- int n;
- while(cin>>n)
- {
- n=n%20016;
- cout<<compute(n)<<endl;
- }
- return 0;
- }
複製代碼 |