高精度乘法模板
#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;
}