高精度乘法
C++中可以使用字符串来表示大整数,并且实现高精度乘法。
以下是一个示例代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string multiply(string num1, string num2) {
int n = num1.size();
int m = num2.size();
string result(n + m, '0');
for (int i = n - 1; i >= 0; i--) {
for (int j = m - 1; j >= 0; j--) {
int mul = (num1[i] - '0') * (num2[j] - '0');
int sum = result[i + j + 1] - '0' + mul;
result[i + j + 1] = sum % 10 + '0';
result[i + j] += sum / 10;
}
}
// 去掉前导零
int pos = result.find_first_not_of('0');
if (pos != string::npos) {
return result.substr(pos);
}
return "0";
}
int main() {
string num1 = "123456789";