C++中的大数乘的实现

Posted clwsec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中的大数乘的实现相关的知识,希望对你有一定的参考价值。

代码

来源:面试常考 大数加减乘除

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

using namespace std;

vector<int> mult(string s1, string s2)

    int l1 = s1.size();
    int l2 = s2.size();
    vector<int> res(l1 + l2, 0);
    for (int i = 0; i < l1; i++)
    
        for (int j = 0; j < l2; j++)
        
            res[i + j + 1] += ((s1[i] - '0')*(s2[j] - '0'));
        
    
    int x = l1 + l2 - 1;
    for (int i = x; i > 0; i--)
    
        res[i - 1] += res[i] / 10;
        res[i] %= 10;
    
    return res;


int main()

    string a = "99999";
    string b = "99999";
    vector<int> ans = mult(a, b);
    int i = 0;
    //去除前面的0
    while (i < ans.size() && ans[i] == 0)
    
        i++;
    
    for (; i < ans.size(); i++)
    
        cout << ans[i];
    
    cout << endl;
    system("pause");
    return 0;

以上是关于C++中的大数乘的实现的主要内容,如果未能解决你的问题,请参考以下文章

大数相乘的快速乘技巧

c++实现大数运算

c++实现大数运算

c++实现大数加减乘除四则运算

新手实践小项目--大数加减类的实现(C++实现)✨

大数运算之 Java BigInteger 的基本用法