下面是一个使用 C++ 实现大数据相乘的函数:

#include <iostream>
#include <string>
#include <vector>

std::string multiply(const std::string& num1, const std::string& num2) {
    int n1 = num1.size();
    int n2 = num2.size();
    std::vector<int> result(n1 + n2, 0);

    for (int i = n1 - 1; i >= 0; i--) {
        for (int j = n2 - 1; j >= 0; j--) {
            int mul = (num1[i] - '0') * (num2[j] - '0');
            int sum = result[i + j + 1] + mul;

            result[i + j] += sum / 10;
            result[i + j + 1] = sum % 10;
        }
    }

    std::string res = '';
    for (int num : result) {
        if (!(res.size() == 0 && num == 0)) {
            res += std::to_string(num);
        }
    }

    return res.size() == 0 ? '0' : res;
}

int main() {
    std::string num1 = '12345678';
    std::string num2 = '123445566';
    std::string result = multiply(num1, num2);
    std::cout << num1 << ' * ' << num2 << ' = ' << result << std::endl;
    return 0;
}

这个函数使用了一个 vector 来存储相乘的结果,然后通过两个嵌套的循环遍历两个输入字符串的每个数字,并将它们相乘。最后,将结果存储在 result vector 中。然后,将 result vector 转换为字符串,并返回结果。

在主函数中,我们使用了 12345678 和 123445566 两个输入数字进行测试,并打印出结果。

C++ 大数据相乘函数实现 - 高效处理超大数字

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

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