0
已解决
90分代码
#include<iostream>
#include<cstring>
using namespace std;
const int MAXN=50005;
string x,y,f[50005];
int n,a[MAXN],b[MAXN],c[MAXN];
string Plus(string x,string y){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
string ans="";
a[0]=x.size(),b[0]=y.size();
c[0]=max(a[0],b[0]);
for(int i=1;i<=a[0];i++)
a[i]=x[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=y[b[0]-i]-'0';
int jw=0;
for(int i=1;i<=c[0];i++){
c[i]=a[i]+b[i]+jw;
jw=c[i]/10;
c[i]%=10;
}
if(jw!=0){
c[++c[0]]++;
}
for(int i=c[0];i>=1;i--){
ans=ans+char(c[i]+'0');
}
return ans;
}
int main(){
cin>>n;
f[1]="1",f[2]="2";
for(int i=3;i<=n;i++){
f[i]=Plus(f[i-1],f[i-2]);
}
cout<<f[n];
return 0;
}
哪里错了
