蒟蒻点4WA,求救
  • 板块P2142 高精度减法
  • 楼主SCma
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/12/25 10:37
  • 上次更新2023/10/24 06:41:56
查看原帖
蒟蒻点4WA,求救
794146
SCma楼主2022/12/25 10:37
#include<bits/stdc++.h>
using namespace std;
char a[10087],b[10087];
int c[10087],d[10087],sum[20164];
int main(){
	cin.tie();
	cout.tie();
	cin >> a >> b;
	int len_a=strlen(a);
	int len_b=strlen(b);
	if(len_b>len_a || ((len_a==len_b)&&strcmp(a,b)<0)){swap(a,b);swap(len_a,len_b);cout << "-";}
	for(int i=0;i<len_a;i++) c[len_a-i-1] = a[i] - 48; //倒叙存储 
	for(int i=0;i<len_b;i++) d[len_b-i-1] = b[i] - 48; //倒叙存储 
	int len_s=max(len_a,len_b);
	for(int i=0;i<=len_s;i++){
		sum[i] = c[i]-d[i];
		sum[i+1]-=1;
		sum[i]+=10;
		sum[i+1] += (sum[i]/10);
		sum[i] %= 10;
	}
	cout << endl;
	for(len_s;!sum[len_s];len_s--); //去除前导零 
	for(int i=max(0,len_s);i>=0;i--) cout << sum[i]; //max(0,len_s)判断是否存在数组运算=0,导致被前导零去除 
}
2022/12/25 10:37
加载中...