题目描述:
图解:
此图来源于ACwing一位大佬的题解
AC代码:
#include<iostream>
#include<vector>
using namespace std;
vector<int> mul(vector<int> &A,vector<int> &B)
{
vector<int> C(A.size()+B.size()+7,0);
for(int i=0;i<A.size();i++)
{
for(int j=0;j<B.size();j++)
{
C[i+j] += A[i] * B[j];
}
}
int t = 0;
for(int i = 0;i<C.size();i++)
{
t += C[i];
C[i] = t % 10;
t = t / 10;
}
while(C.size() > 1 && C.back() == 0) C.pop_back();
return C;
}
int main()
{
vector<int> A,B;
string a,b;
cin >> a >> b;
for(int i=a.size()-1;i>=0;i--) A.push_back(a[i] - '0');
for(int i=b.size()-1;i>=0;i--) B.push_back(b[i] - '0');
auto C = mul(A,B);
for(int i=C.size()-1;i>=0;i--) printf("%d",C[i]);
return 0;
}