f[i]=f[i-1]+f[i-2] ( f[0]=1, f[1]=1
#include <cstdio> #include<iostream> #include<string.h> #include<fstream> using namespace std; int a[10000],b[10000]; int main() { int t,i,j; // fstream cin("d:\\test.txt"); cin>>t; while(t--) { string s; cin>>s; int n=s.size(); if(n==1) { cout<<1<<endl; continue; } int up=0; int cnt=1; int tt; int flag=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); a[0]=1; b[0]=1; for(i=1;i<n;i++) { if(flag==0) { for(j=0;j<cnt;j++) { tt=a[j]+b[j]+up; a[j]=tt%10; up=tt/10; } if(up) { a[cnt]=up; up=0; cnt++; } flag=1; } else { for(j=0;j<cnt;j++) { tt=a[j]+b[j]+up; b[j]=tt%10; up=tt/10; } if(up) { b[cnt]=up; up=0; cnt++; } flag=0; } } if(flag==0) { for(i=cnt-1;i>=0;--i) cout<<b[i]; cout<<endl; } else { for(i=cnt-1;i>=0;--i) cout<<a[i]; cout<<endl; } } return 0; }
)