C++ 高精度乘法

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

using namespace std;

vector<int> mul(vector<int> &A, int b)
{
    vector<int> C;
    
    int t = 0;
    for ( int i = 0, l = A.size(); i < l || t; i++ )
    {
        if ( i < l ) t += A[i] * b;
        C.push_back( t % 10 );
        t /= 10;
    }
    while ( C.size() > 1 && C.back() == 0 ) C.pop_back();
    return C;
}

int main()
{
    string a;
    int b;
    vector<int> A;
    
    cin >> a >> b;
    for ( int i = a.size() - 1; i >= 0; i-- ) A.push_back(a[i] - '0');
    
    vector<int> C = mul(A, b);
    
    for ( int i = C.size() - 1; i >= 0; i-- ) cout << C[i];
    cout << endl;
    
    return 0;
}

上一篇:C++ 去除重复项且获取到不重复部分


下一篇:AcWing 算法基础课 链表