高精度出了问题,求助
查看原帖
高精度出了问题,求助
1269314
LiChenyi05楼主2024/3/31 14:56
#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;
}

我这样写高精度,为啥不能输出

2024/3/31 14:56
加载中...