题目传送门 我这个高进度算法只弄第一个被减数大于等于减数的,弄了负数他就会输出一大堆,请求大佬帮忙修改一下代码 代码如下
#include <iostream>
#include <string>
using namespace std;
void in(int arr[]) {
string s;
cin >> s;
for (int i = 0; i < s.size(); ++i)
arr[i] = s[s.size() - 1 - i] - 48;
}
void out(int arr[]) {
int k = 10086 - 1;
while (arr[k] == 0 && k > 0)
--k;
for (int i = k; i >= 0; --i)
cout << arr[i];
}
void sub(int a[], int b[], int c[]) {
for (int i = 0; i < 10086; ++i) {
int num = c[i];
num += a[i] - b[i];
if (num < 0) {
num += 10;
c[i + 1] -= 1;
}
c[i] = num;
}
}
int main() {
int a[10086] = {}, b[10086] = {}, c[10086] = {};
in(a);
in(b);
sub(a, b, c);
out(c);
return 0;
}