代码:
#include <iostream>
#include <vector>
using namespace std;
//C = A * b
vector<int> mul(vector<int> &A, int b)
{
vector<int> C;
int t = 0;//进位
for (int i = 0;i < A.size() || t; i++)//如果位数已经乘完,但是t有进位就继续加在后面
{
if(i < A.size()) t += A[i] * b;//分别乘b
C.push_back(t % 10);//取乘完值的个位,十位进位
t /= 10;//整除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');
auto C = mul(A, b);
for(int i = C.size() - 1; i >= 0; i--) printf("%d", C[i]);
return 0;
}