高精减法求助!!!
查看原帖
高精减法求助!!!
753246
WSx_3楼主2024/1/25 21:57

结果就是不对啊

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
string s1, s2;
int a[20001], b[20001], c[20001];
string minus1(string a1, string b1)
{
	int la=a1.length(), lb=b1.length(), i=1;
	for(int i=0; i<=la-1; i++) a[la-i]=a1[i]-'0';
	for(int i=0; i<=lb-1; i++) a[lb-i]=b1[i]-'0';
	while(i<=la||i<=lb)
	{
		if(a[i]>b[i]) a[i+1]--, a[i]+=10;
		c[i]=a[i]-b[i];
		i++;
	}
	int lc=i;
	while(c[lc]==0&&lc>1) lc--;
	string ans="";
	for(int i=lc-1; i>=0; i--) ans+=c[i]+'0';
	return ans;
}
int main()
{
	cin>>s1>>s2;
	cout<<minus1(s1, s2);
 return 0;
}

2024/1/25 21:57
加载中...