高精度乗算高精度除法

850 ワード

高精度乗算テンプレート
#include
#include

using namespace std;

vector muti(vector &A,int b)
{
    //       0,         0 vector
    vector D  = {0}; 
    if (b == 0) return D;
    //      C
    vector C;
    int t = 0;
    //a            ,   0            
    for (int i = 0;i < A.size();i++)
    {
        t += A[i] * b;
        C.push_back(t % 10);
        //t    
        t /= 10;
    }
    if (t) C.push_back(t);
    return C;
}

int main()
{
    //a    ,b    
    string a;
    int b;
    cin >> a >> b;
    vector A;
    for (int i = a.size() - 1;i >= 0;i--) A.push_back(a[i] - '0');
    auto C = muti(A,b);
    for (int i = C.size() - 1;i >= 0;i--) printf("%d",C[i]);
    return 0;
}