P2142 高精度减法 我只有20分求助!
查看原帖
P2142 高精度减法 我只有20分求助!
749691
BDLMTCHWYFL楼主2022/7/23 23:11
#include<iostream>
#include<cstring>
using namespace std;
char a1[256],b1[256],temp[256];
int a[256]={},b[256]={},c[256]={};
int main(){
	cin>>a1>>b1;
	int lena=strlen(a1); 
	int lenb=strlen(b1);
	if(lena<lenb||(lena==lenb&&strcmp(a1,b1)<0)){
		cout<<"-";
		strcpy(temp,a1);
		strcpy(a1,b1); 
		strcpy(b1,temp);
	}
	lena=strlen(a1); 
	lenb=strlen(b1);
	for(int i=0;i<lena;i++){
		a[lena-1-i]=a1[i]-48;
	} 
	for(int i=0;i<lenb;i++){
		b[lenb-1-i]=b1[i]-48;
	} 
	int lenc=0;
	while(lenc<lenb||lenc<lena){
		if(a[lenc]<b[lenc]){
			a[lenc]+=10;
			a[lenc+1]--;
		}
		c[lenc]=a[lenc]-b[lenc];
		lenc++;
	}
	while((c[lenc-1]==0)&&(lenc>1)){
		lenc--;
	}
	for(int i=lenc-1;i>=0;i--){
		cout<<c[i];
	}
	return 0;
}
2022/7/23 23:11
加载中...