当你尝试用高精度......
2025-08-31 15:09:52
发布于:北京
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
// 高精度加法函数,返回两个大整数的和
string add(string num1, string num2) {
// 用于存储结果的字符串
string result;
// 进位标志
int carry = 0;
// 从两个数的末尾开始相加
int i = num1.length() - 1;
int j = num2.length() - 1;
// 当还有数字未处理或还有进位时继续循环
while (i >= 0 || j >= 0 || carry > 0) {
// 获取当前位的数字,若已超出字符串长度则用0代替
int digit1 = (i >= 0) ? (num1[i] - '0') : 0;
int digit2 = (j >= 0) ? (num2[j] - '0') : 0;
// 计算当前位的和与新的进位
int sum = digit1 + digit2 + carry;
carry = sum / 10;
// 将当前位的结果加入到结果字符串中
result.push_back((sum % 10) + '0');
// 移动到下一位
i--;
j--;
}
// 反转结果字符串,得到正确的顺序
reverse(result.begin(), result.end());
return result;
}
int main() {
string A, B;
// 输入两个大整数
cin >> A >> B;
// 计算并输出结果
cout << add(A, B) << endl;
return 0;
}
这里空空如也
有帮助,赞一个