题目描述:
求两个大的正整数相减的差。
输入格式:
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
输出格式:
一行,即所求的差。
样例输入:
9999999999999999999999999999999999999 9999999999999
样例输出:
9999999999999999999999990000000000000
时间限制: 1000ms
空间限制: 128MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[201],b[201];
int c[201]={0},d[201]={0};
cin>>a>>b;
int s=strlen(a),s1=strlen(b);
for(int i=0,j=s-1;i<s;i++,j--){
c[j]=a[i]-'0';
}
for(int i=0,j=s1-1;i<s1;i++,j--){
d[j]=b[i]-'0';
}
for(int i=0;i<201;i++){
c[i]=c[i]-d[i];
if(c[i]<0){
c[i]=c[i]+10;
c[i+1]--;
}
}
for(int i=200;i>=0;i--){
if(c[i]!=0){
for(int j=i;j>=0;j--){
cout<<c[j];
}break;
}
}
return 0;
}