用c++写高精度加法
以下是使用C++语言编写的高精度加法算法示例:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
string addStrings(string num1, string num2) {
int i = num1.size() - 1;
int j = num2.size() - 1;
int carry = 0;
string result = "";
while (i >= 0 || j >= 0 || carry != 0) {
int x = i >= 0 ? num1[i] - '0' : 0;
int y = j >= 0 ? num2[j] - '0' : 0;
int sum = x + y + carry;
carry = sum / 10;
result += to_string(sum % 10);
i--;
j--;
}
reverse(result.begin(), result.end());
return result;
}
int main() {
string num1 = "123456789";
string num2 = "987654321";
string sum = addStrings(num1, num2);
cout << "Sum: " << sum << endl;
return 0;
}
上述代码中的 addStrings 函数实现了高精度加法。它使用了两个指针 i 和 j 分别指向两个输入数字的最低位,然后从低位到高位逐位相加,并将进位 carry 保留下来。最后,将结果字符串反转并返回。
在 main 函数中,我们定义了两个输入数字 num1 和 num2,并使用 addStrings 函数计算它们的和。最后,输出结果。
请注意,上述示例中的输入数字 num1 和 num2 以字符串形式给出,以避免整数溢出问题
原文地址: https://www.cveoy.top/t/topic/ihdO 著作权归作者所有。请勿转载和采集!