为什么一个也过不了,我看到答案明明是对的啊?
查看原帖
为什么一个也过不了,我看到答案明明是对的啊?
1236567
pengcao楼主2024/6/2 21:25
#include<bits/stdc++.h>

using namespace std;

bool Comparison(string num1, string num2){//比较两字符串长度

    return num1.length() > num2.length();
}

void Preprocessing(string &str, int n){//预处理,将两字符串的长度统一

    for(int i = 1; i <= n; i++){
        str = '0' + str;
    }
}

string Add(string num1, string num2){//高精度加法

    if(Comparison(num1, num2)){
        Preprocessing(num2, num1.length() - num2.length());
    }
    else{
        Preprocessing(num1, num2.length() - num1.length());
    }

    int next, temp;//进位, 计算结果
    string ans_str;

    for(int i = num1.size() - 1; i >= 0; i--){
        temp = (num1[i] - '0') + (num2[i] - '0') + next;
        next = temp / 10;
        temp %= 10;
        ans_str = char(temp + '0') + ans_str;

    }

    if(next != 0) ans_str = char(next + '0') + ans_str;
    return ans_str;
}

int main()
{
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);

    string num1, num2;

    cin >> num1 >> num2;

    cout << Add(num1, num2) << endl;

    return 0;
}
2024/6/2 21:25
加载中...