#include <iostream>
#include <string>
#include <memory.h>
using namespace std;
int m[500];
bool mf[500];
void multiply(string num1, string num2)
{
int i = 0;
int j = 0;
int num1l = num1.length();
int num2l = num2.length();
int temp;
int ml;
for(i = num2l - 1; i >= 0; i--)
{
for(j = num1l - 1; j >= 0; j--)
{
mf[num1l + num2l -2 - i - j] = 1;
m[num1l + num2l -2 - i - j] += (num1[j] - '0') * (num2[i] - '0');
}
}
ml = 0;
while(mf[ml])
{
temp = m[ml]/10;
m[ml] %= 10;
if(temp)
{
m[ml + 1] += temp;
mf[ml + 1] = true;
}
ml++;
}
for(i = ml - 1; i >= 0; i--)cout<<m[i];
cout<<endl;
}
int main()
{
string num1, num2;
cin>>num1;
cin>>num2;
memset(m, 0, sizeof(int) * 500);
memset(mf, 0, sizeof(bool) * 500);
multiply(num1, num2);
return 0;
}
最大积的位数可以达到500位,可行性有待考证