一个大数乘多个大数c++
时间: 2024-04-08 07:35:37 浏览: 47
C++实现大数相乘的算法
5星 · 资源好评率100%
在C++中,可以使用字符串或数组来表示大数,并实现大数的乘法运算。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 大数乘法
string multiply(string num1, string num2) {
int len1 = num1.length(), len2 = num2.length();
vector<int> result(len1 + len2, 0);
for (int i = len1 - 1; i >= 0; i--) {
for (int j = len2 - 1; j >= 0; j--) {
int product = (num1[i] - '0') * (num2[j] - '0');
int sum = result[i + j + 1] + product;
result[i + j + 1] = sum % 10;
result[i + j] += sum / 10;
}
}
string res = "";
for (int i = 0; i < result.size(); i++) {
if (result[i] != 0 || !res.empty()) {
res += to_string(result[i]);
}
}
return res.empty() ? "0" : res;
}
int main() {
string num1 = "123456789";
string num2 = "987654321";
string res = multiply(num1, num2);
cout << num1 << " * " << num2 << " = " << res << endl;
return 0;
}
```
上述代码中,我们使用一个vector来存储乘法的结果。首先,我们从右向左遍历两个大数的每一位,将每位相乘的结果加到对应的位置上,并处理进位。最后,将vector中的结果转换为字符串形式输出。
在示例中,我们将两个大数分别设置为"123456789"和"987654321",然后调用multiply函数进行乘法运算,最后输出结果"121932631137021795769"。你可以根据需要修改输入的大数,进行测试。
阅读全文