高精度加减法(string实现)
//高精度加法
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
string x,y;
int ans[1005],a[1004],b[1001];
int max(int a,int b){
	if(a>b) return a;
	else return b;
}
int main(){
	cin>>x>>y;
	int lenx=x.length(),leny=y.length();
	for(int i=0;i<lenx;i++) a[i]=x[lenx-i-1]-'0';
	for(int i=0;i<leny;i++) b[i]=y[leny-i-1]-'0';
	int len=max(lenx,leny);
	for(int i=0;i<=len;i++){
		ans[i]+=(a[i]+b[i]);
		if(ans[i]>9){
			ans[i]-=10;
			ans[i+1]++;
		}
	}
	if(ans[len]!=0) printf("%d",ans[len]);
	for(int j=len-1;j>=0;j--){
		printf("%d",ans[j]);
	}
	return 0;
}
//高精度减法
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
string x,y;
int ans[1005],a[1004],b[1001];
int main(){
	cin>>x>>y;
	int lenx=x.length(),leny=y.length();
	for(int i=0;i<lenx;i++) a[i]=x[lenx-i-1]-'0';
	for(int i=0;i<leny;i++) b[i]=y[leny-i-1]-'0';
	int len=lenx; 
	for(int i=0;i<len;i++){
		ans[i]+=(a[i]-b[i]);
		if(ans[i]<0){
			ans[i]+=10;
			ans[i+1]-=1;
		}
	}
	int l;
	while(len--){
		if(ans[len]!=0){
			l=len;
			break;
		}
	}
	for(int j=l;j>=0;j--){
		printf("%d",ans[j]);
	}
	return 0;
} 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号