求助
  • 板块学术版
  • 楼主HYQ1234
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/5/30 20:58
  • 上次更新2023/10/23 14:17:02
查看原帖
求助
926328
HYQ1234楼主2023/5/30 20:58

题目传送门 我这个高进度算法只弄第一个被减数大于等于减数的,弄了负数他就会输出一大堆,请求大佬帮忙修改一下代码 代码如下

#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;
}

2023/5/30 20:58
加载中...