#include #include #include #include #include #include #include #include #include #include #include #define INF 0x3f3f3f3f #define ll long long #define mod 1000000009 #define endl '\n' using namespace std; #define For(i,N) for(int i=1;i<=N;i++) #define LL long long const int N=2001; struct HPC{ int num[3000]; }P[250]; void print(const HPC &A){// 输出函数 printf("%d",A.num[A.num[0]]); for(int i=A.num[0]-1;i>0;i--) printf("%.4d",A.num[i]); printf("\n"); } HPC operator +(const HPC &a,int b){ //高精 + 单精 HPC ans;int &len=ans.num[0]; memset(ans.num,0,sizeof(ans.num)); ans.num[1]+=b; for(int i=1;i=10000;len++){ ans.num[len+1]+=ans.num[len]/10000;ans.num[len]%=10000; } return ans; } HPC operator +(const HPC &a,const HPC &b){//高精 + 高精 HPC ans;int &len=ans.num[0],L=max(a.num[0],b.num[0]); memset(ans.num,0,sizeof(ans.num)); for(int i=1;i=10000;len++){ ans.num[len+1]+=ans.num[len]/10000;ans.num[len]%=10000; } return ans; } HPC operator -(const HPC &a,const HPC &b){ //高精 - 高精 HPC ans;int &len=ans.num[0]; memset(ans.num,0,sizeof(ans.num)); for(int i=1;i<=a.num[0];i++){ ans.num[i]+=a.num[i]-b.num[i]; if(ans.num[i]<0) ans.num[i+1]--,ans.num[i]+=10000; } for(len=a.num[0];ans.num[len]==0;len--); return ans; } void init() { P[0].num[0]=1; P[0].num[1]=0; P[1].num[0]=1; P[1].num[1]=1; for(int i=2;i<=205;i++) { P[i]=P[i-1]+P[i-2]; } } int main() { int T; init(); while(~scanf("%d",&T)) { //For(i,100) print(P[T+1]); } return 0; }