求助 输出正确但WA
查看原帖
求助 输出正确但WA
748287
lyc0613楼主2023/7/27 14:02
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int MAXN = 1e5;
string input1,input2;
int num1[MAXN],num2[MAXN],ans[MAXN];
string _minus(string a,string b){
    string diff;
    int len1 = a.size(),len2 = b.size();
    if((a < b&&len1 <= len2) || len2 > len1) return "-" + _minus(b, a);
    for(int i = len1;i > 0;i--) num1[i] = a[len1-i] - '0';
    for(int i = len2;i > 0;i--) num2[i] = b[len2-i] - '0';
    int maxl = max(len1,len2);
    for(int i = 1;i <= maxl;i++){
        if(num1[i] < num2[i]){
            num1[i+1] --;
            num2[i] += 10;
        }
        ans[i] = num1[i] - num2[i];
    }
    while(!ans[maxl]&&maxl > 1) maxl--;
    for(int i = maxl;i > 0;i--) diff += ans[i] + '0';
    return diff;
}
int main(){
    cin>>input1>>input2;
    cout<<_minus(input1,input2);
    return 0;
}
2023/7/27 14:02
加载中...