给你两个十进制数,数位最多有1000位,求他们的差
第一行输入一个整数
第二行输入一个整数
输出一个整数
12312312312142343254354354
4124354364565765456
样例输出: 12312308187787978688588898
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
int n=a.size(),m=b.size();
int x[1001]={0},y[1001]={0},z[1001]={0};
if(n<m||n==m&&a<b){
swap(a,b);
cout<<"-";
}
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
for(int i=0;i<n;i++)
x[i]=a[i]-'0';
for(int i=0;i<m;i++)
y[i]=b[i]-'0';
int len=max(m,n);
for(int i=0;i<len;i++){
z[i]+=x[i]-y[i];
if(z[i]<0){
z[i+1]-=1;
z[i]+=10;
}
}
while(z[len-1]==0&&len>1){
len--;
}
for(int i=len-1;i>=0;i--){
cout<<z[i];
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
int x[1001]={0},y[1001]={0},z[1001]={0};
//判断够不够减
if(a.size()<b.size()||a.size()==b.size()&&a<b){
swap(a,b);
cout<<"-";
}
for(int i=0;i<a.size();i++)
x[a.size()-i-1]=a[i]-'0';
for(int i=0;i<b.size();i++)
y[b.size()-i-1]=b[i]-'0';
int len=max(a.size(),b.size());
//相减
for(int i=0;i<len;i++){
z[i]+=x[i]-y[i];
if(z[i]<0){
z[i+1]-=1;
z[i]+=10;
}
}
//输出
while(z[len-1]==0&&len>1)len--;
for(int i=len-1;i>=0;i--){
cout<<z[i];
}
return 0;
}