高精度乘法

#include<iostream>
#include<vector>
using namespace std;

vector<int> mut(vector<int>A,int a){
    vector<int> C;
    int t = 0;
    for(int i = 0;i<A.size() || t;i++){   //||t比如说最后A的最后一位了但是还要进位
        if(i<A.size()) t += A[i]*a;
        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;
    cin>>a>>b;
    vector<int> A;
    for(int i = a.size()-1;i>=0;i--) A.push_back(a[i]-'0');   //注意这里是a[i]-'0'
    //调用函数
    vector<int> C;
    C = mut(A,b);
    for(int j = C.size()-1;j>=0;j--) cout<<C[j];




    return 0;
}

posted @ 2020-10-18 19:57  secx  阅读(74)  评论(0)    收藏  举报