#include #include struct fibo { char num[105]; } n[205]; void MOVE(char num[]) { int l=strlen(num); for(int i=100,j=1; j<=l; i--,j++) { num[i]=num[l-j]; num[l-j]=0; } } void add(char num1[],char num2[],int j) { int m=0; for(int i=100; i>=0; i--) { m=num2[i]+num1[i]; if(m>=10)n[j].num[i-1]+=m/10; n[j].num[i]+=m%10; if(n[j].num[i]>=10)n[j].num[i-1]++,n[j].num[i]%=10; } } int main() { int t; memset(n,0,sizeof(n)); n[0].num[100]=1; n[1].num[100]=1; for(int i=2; i<=200; i++) add(n[i-1].num,n[i-2].num,i); while(~scanf("%d",&t)) { int s=101; for(int i=0; i<=100; i++) if(n[t].num[i]) { s=i; break; } for(int i=s; i<=100; i++) printf("%d",n[t].num[i]); printf("\n"); } }