#include<iostream>
#include<vector>
#include<string>
using namespace std;
vector<int> A;
int b;
//大数字相乘一般是一个大数字,和一个较小数字(可以在int内存下)这种情况
vector<int> mul(vector<int>& A, int b)
{
vector<int> C;
int t = 0;
for (int i = 0; i < A.size(); i++) // 乘法的要求是大数字A的所有位置都发生了乘法运算
{
if (i < A.size()) t += A[i] * b;
C.push_back(t % 10);
t /= 10;
}
if (t) C.push_back(t); //在乘法运算完成之后,如果进位计数器不为0,则最高位被拓展
while (C.size() > 1 && C.back() == 0) C.pop_back(); // 去掉前导0
return C;
}
int main(void)
{
string a;
cin >> a >> b;
for (int i = a.size() - 1; i >= 0; i--)
{
A.push_back(a[i] - '0');
}
vector<int> C;
C = mul(A, b);
for (int i = C.size() - 1; i >= 0; i--)
{
cout << C[i];
}
return 0;
}
高精度乘法模板
最新推荐文章于 2023-09-03 22:43:49 发布