高精度乘法 高精度除法

高精度乘法模板

#include<iostream>
#include<vector>

using namespace std;

vector<int> muti(vector<int> &A,int b)
{
    //如果有一个数为0,那么需要返回一个为0的vector
    vector<int> D  = {0}; 
    if (b == 0) return D;
    //定义结果数组C
    vector<int> 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<int> 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;
}

猜你喜欢

转载自blog.csdn.net/smallrain6/article/details/106121302