考点为高精度斐波那契数列。
要注意的是n为0时输出的应当为空串,否则会WA,一定要注意!
#include <iostream>
#include <cstdio>
using namespace std;
string a[210];
string Add(string a,string b)
{
int i,j,sum=0;
if(a.length()<b.length())swap(a,b);
for(i=a.length()-1,j=b.length()-1;i>=0;i--,j--)
{
sum+=a[i]-'0';
if(j>=0)sum+=b[j]-'0';
a[i]=sum%10+'0';
sum/=10;
}
if(sum)a='1'+a;
return a;
}
int main()
{
int i,j,n;
a[1]="1";
a[2]="2";
for(i=3;i<=200;i++)
{
a[i]=Add(a[i-1],a[i-2]);
}
while(~scanf("%d",&n))
{
cout<<a[n]<<endl;
}
return 0;
}