#include #include #include #include #include #include #include #include #include #include #include using namespace std; int f[1010][600]; void add(int a[],int b[],int c[]) { int len=max(a[0],b[0]); for (int i=1; i<=len; i++) { c[i]+=(a[i]+b[i]); if (c[i]>9) { c[i+1]++; c[i]-=10; } } if (c[len+1]>0) c[0]=len+1; else c[0]=len; } int main() { //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); memset(f,0,sizeof(f)); f[0][1]=1; f[1][1]=1; f[0][0]=1; f[1][0]=1; for (int i=2; i<=1000; i++) add(f[i-1],f[i-2],f[i]); /*for (int i=1; i<=1000; i++) { for (int j=f[i][0]; j>=1; j--) printf("%d",f[i][j]); printf("\n"); }*/ int n; while (scanf("%d",&n)!=EOF) { if (n==0) printf("\n"); else { for (int j=f[n][0]; j>=1; j--) printf("%d",f[n][j]); printf("\n"); } } return 0; }