50分求调
查看原帖
50分求调
965200
natie楼主2024/7/17 13:50

嘶……这个高精减法好像不大会减法,输出一些奇奇怪怪的东西,求指正,谢谢

#include<bits/stdc++.h>
using namespace std;
int a[10100]={0},b[10100]={0},c[10100];
int main()
{
	string n,m,x,y;
	cin>>n>>m;
	if(n>m)
	{
		x=n;
		y=m;
	}
	else
	{
		x=m;
		y=n;
	}
	int lx=x.size();
	int ly=y.size();
	for(int i=lx-1,j=1;i>=0;i--,j++)
	{
		a[j]=x[i]-'0';
	}
	for(int i=ly-1,j=1;i>=0;i--,j++)
	{
		b[j]=y[i]-'0';
	}
	int ansl=max(lx,ly);
	if(n<m)
	{
		cout<<"-";
	}
	for(int i=0;i<=ansl;i++)
	{
		c[i]+=a[i]-b[i];
		if(a[i]<b[i])
		{
			c[i]+=10;
			a[i+1]--;
		}
	}
	for(int i=ansl;i>0;i--)
	{
		if(c[ansl]==0)
		{
			i--;
		}
		cout<<c[i];
	}
	return 0;
 } 
2024/7/17 13:50
加载中...