7990 多位数的十进制减法 经验值:1200 时间限制:1000毫秒 内存限制:128MB 题目描述 Description 给定两个十进制数a和b,其中a和b的数位最多有1000位,请你求出a-b的值。
输入描述 Input Description 第一行输入一个整数a; 第二行输入一个整数b。
输出描述 Output Description 输出一个整数,表示a-b的值。
样例输入 Sample Input 12312312312142343254354354 4124354364565765456 样例输出 Sample Output 12312308187787978688588898
#include<iostream>
using namespace std;
string A,B;
int a[1001],b[1001],s[1001],tw,t;
string jian(string A,string B){
string f="";
a[0]=A.size();
b[0]=B.size();
s[0]=max(a[0],b[0]);
for(int i=1;i<=a[0];i++){
a[i]=A[a[0]-i]-'0';
}
for(int i=1;i<=b[0];i++){
b[i]=B[b[0]-i]-'0';
}
for(int i=1;i<=s[0];i++){
s[i]=a[i]-b[i]-tw;
tw=0;
while(s[i]<0){
s[i]+=10;
tw++;
}
if(s[i]==0)t++;
else t=0;
}
s[0]-=t;
for(int i=s[0];i>0;i--){
f+=char(s[i]+'0');
}
return f;
}
int main(){
cin>>A>>B;
cout<<jian(A,B);
return 0;
}