完全高精度乘法模板
作者:
nut96
,
2022-01-10 10:02:53
,
所有人可见
,
阅读 282
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
const int N = 100010;
vector<int> mul(vector<int> &A, vector<int> &B)
{
vector<int> c;//用于存储答案
c.resize(A.size() + B.size() + 1);
for(int i = 0; i < A.size(); i++)
{
int t = 0;//t表示进位
for(int j = 0; j < B.size(); j++)
{
c[i + j] += A[i] * B[j] + t;
t = c[i + j] / 10;
c[i + j] %= 10;
}
//每次进行循环之后的进位
c[i + B.size()] += t;
}
//去除前导0
while(c.size() > 1 && !c.back()) c.pop_back();
return c;
}
int main()
{
string a, b;
cin >> a >> b;
vector<int> A, B;
for(int i = a.size() - 1; i >= 0; i--) A.pb(a[i] - '0');
for(int i = b.size() - 1; i >= 0; i--) B.pb(b[i] - '0');
vector<int> c = mul(A, B);
for(int i = c.size() - 1; i >= 0; i--) cout << c[i];
}