写一篇高精度乘法运算的C++程序
下面是一个高精度乘法运算的C++程序的示例:
#include <iostream>
#include <vector>
using namespace std;
vector<int> multiply(vector<int>& num1, vector<int>& num2) {
int len1 = num1.size();
int len2 = num2.size();
vector<int> result(len1 + len2, 0);
for (int i = len1 - 1; i >= 0; i--) {
for (int j = len2 - 1; j >= 0; j--) {
int mul = num1[i] * num2[j];
int p1 = i + j;
int p2 = i + j + 1;
int sum = mul + result[p2];
result[p1] += sum / 10;
result[p2] = sum % 10;
}
}
// 去除前导零
int i = 0;
while (i < result.size() && result[i] == 0) {
i++;
}
if (i == result.size()) {
return vector<int>{0};
}
return vector<int>(result.begin() + i, result.end());
}
int main() {
string str1, str2;
cout << "输入两个大整数:" << endl;
cin >> str1 >> str2;
vector<int> num1, num2;
for (int i = str1.size() - 1; i >= 0; i--) {
num1.push_back(str1[i] - '0');
}
for (int i = str2.size() - 1; i >= 0; i--) {
num2.push_back(str2[i] - '0');
}
vector<int> result = multiply(num1, num2);
cout << "结果:" << endl;
for (int i = result.size() - 1; i >= 0; i--) {
cout << result[i];
}
cout << endl;
return 0;
}
此程序使用了两个vector来存储大整数,其中每个元素表示一位数字。multiply函数实现了高精度乘法的算法,将两个大整数相乘得到的结果存储在一个新的vector中。然后,将结果输出到控制台上。用户可以通过输入两个大整数来进行乘法运算
原文地址: https://www.cveoy.top/t/topic/iPnS 著作权归作者所有。请勿转载和采集!