No丶one @ 2017-04-01 22:07:32
#include<iostream>
#include<cstring>
using namespace std;
int n;
string fa[5000];
string sss(string a,string b)
{
int la,lb,lc,aa[5000]={0},bb[5000]={0};
char c[5000];
la=a.length();
lb=b.length();
for(int i=1;i<=la;++i) aa[i]=a[la-i]-48;
for(int i=1;i<=lb;++i) bb[i]=b[lb-i]-48;
if(la<lb) lc=lb;
else lc=la;
for(int i=1;i<=lc;++i)
aa[i]+=bb[i];
for(int i=1;i<=lc;++i)
{
aa[i+1]+=aa[i]/10;
aa[i]%=10;
}
while(aa[lc+1]==1) lc++;
for(int i=0;i<lc;++i) c[i]=aa[lc-i]+48;
return c;
}
int main()
{
cin>>n;
fa[1]='1';
fa[2]='2';
for(int i=3;i<=n;++i)
{
fa[i]=sss(fa[i-1],fa[i-2]);
}
cout<<fa[n];
}
by Hunterz @ 2017-04-30 09:35:37
第五:如果输入0,也要输出0,测试数据抠门
第十:看题目:(60% N<=50 ,100% N<=5000) 所以说你的数组小了一点。