求助高精度减法第32行为什么报错
  • 板块学术版
  • 楼主zxcvbnmQAZ1
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/1/4 14:49
  • 上次更新2023/10/24 05:36:45
查看原帖
求助高精度减法第32行为什么报错
760761
zxcvbnmQAZ1楼主2023/1/4 14:49
#include<string>
#include<iostream>
#include<cstdio>
using namespace std;
struct aaa
{
	int n[10010],l;
	void input()
	{
		string s;
		cin>>s;
		l=s.size();
		for(int i=l-1,j=1;i>=0;i--,j++)
		n[j]=s[i]-48;
		
	}
	void output()
	{
		for(int i=l;i;i--)
		printf("%d",n[i]);
	}
	aaa operator -(const aaa &A)const
	{
		aaa ans;
		ans.l=max(l,A.l);
		for(int i=1;i<=ans.l;i++)
		{
			ans.n[i]=n[i]-A.n[i];
			if(ans.n[i]<0)
			{
			ans.n[i]+=10,
			A.n[i+1]=A.n[i+1]+1;//这行报错
			}
		}
		while(ans.n[ans.l]==0&ans.l>1)ans.l--;
		return ans;
	}
};
aaa a,b,c;
int main()
{
	a.input();
	b.input();
	c=a-b;
	c.output();
}
2023/1/4 14:49
加载中...