LiChenyi05 @ 2024-03-31 14:56:52
#include <bits/stdc++.h>
using namespace std;
string f[5050];
void s(string s1,string s2,int x)
{
string C;
int a[5050];
int b[5050];
int c[5050];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int la=s1.size();
int lb=s2.size();
int maxlen=max(la,lb);
int k=0;
for(int i=la-1;i>=0;i--)
{
a[k++]=s1[i]-'0';
}
k=0;
for(int i=lb-1;i>=0;i--)
{
b[k++]=s2[i]-'0';
}
for(int i=0;i<maxlen;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>9)
{
c[i+1]=c[i]/10;
c[i]%=10;
}
}
if(c[maxlen]!=0)
{
maxlen++;
}
k=0;
for(int i=maxlen-1;i>=0;i--)
{
C[k++]=c[i]+'0';
}
f[x]=C;
}
int main()
{
int n;
cin>>n;
f[0]='0';
f[1]='1';
f[2]='2';
for(int i=3;i<=n;i++)
{
s(f[i-1],f[i-2],i);
}
cout<<f[n];
return 0;
}
我这样写高精度,为啥不能输出