c++ 超长整数乘法 高精度乘法

c++ 超长整数乘法 高精度乘法

解题思路

  • 参考加法和减法解题思路
  • 乘法不是一位一位的按照手算的方式进行计算,而是用循环用一个数的某一位去乘另外一个数

打卡代码

#include<bits/stdc++.h>
using namespace std;

vector<int> mul(vector<int> a,int b){
    vector<int> c;
    int t=0;
    for (int i = 0; i < a.size()|| t; ++i) {
        if(i<a.size()) 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 s1;
    vector<int> a;
    int b;
    cin>>s1>>b;
    for (int i = s1.size()-1; i >= 0 ; --i) {
        a.push_back(s1[i]-'0');
    }
    auto c=mul(a,b);
    for (int i = c.size()-1; i >= 0 ; --i) {
        cout<<c[i];
    }
    return 0;
}
posted @ 2022-05-21 11:35  小呆瓜瓜  阅读(141)  评论(0)    收藏  举报