水题,不多说。ac代码:
#include <iostream>
#include <string>
using namespace std;
string add(string a,string b)
{
string max,min;
max=a;min=b;
if(a.length()<b.length())
{max=b;min=a;}
int lmax,lmin,l;
lmax=max.size();lmin=min.size();
l=lmax-1;
for(int i=lmin-1;i>=0;--i)
{
max[l--]+=min[i]-'0';
}
for(int j=lmax-1;j>=1;j--)
{
if(max[j]>'9')
{
max[j]-=10;
max[j-1]++;
}
}
if(max[0]>'9')
{
max[0]-=10;
max='1'+max;
}
return max;
}
int main()
{
string f[1002];
f[1]="1";f[2]="1";
for(int i=3;i<1002;++i)
f[i]=add(f[i-1],f[i-2]);
int n;
cin>>n;
while(n--)
{
int m;
cin>>m;
cout<<f[m]<<endl;
}
return 0;
}