高精度加减法(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;
}