下面是一个高精度乘法运算的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中。然后,将结果输出到控制台上。用户可以通过输入两个大整数来进行乘法运算

写一篇高精度乘法运算的C++程序

原文地址: https://www.cveoy.top/t/topic/iPnS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录