描述 求两个大的正整数相减的差。
输入
共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
输出
一行,即所求的差。
样例输入
9999999999999999999999999999999999999
9999999999999
样例输出
9999999999999999999999990000000000000
源码
#include<iostream>
#include<cmath>
#include<cstring>
#define MAXLEN 200
using namespace std;
int main() {
int i, up = 0, tmp;
char buff[MAXLEN + 1] = { 0 }, a[MAXLEN + 1] = { 0 }, b[MAXLEN + 1] = { 0 };
scanf("%s\n", buff);
tmp = 0;
for (i = strlen(buff) - 1; i >= 0; i--)
a[tmp++] = buff[i] - '0';
scanf("%s", buff);
tmp = 0;
for (i = strlen(buff) - 1; i >= 0; i--)
b[tmp++] = buff[i] - '0';
for (i = 0; i < MAXLEN; i++) {
tmp = a[i] - b[i] - up;
a[i] = abs(tmp);
if (tmp<0){up = 1;}
else up = 0;
}
for (i = MAXLEN; i >= 0; i--)
if (a[i] != 0)
for (i; i >= 0; i--)
printf("%d", a[i]);
return 0;
}