就是模拟算数乘法的一个方法 先由第一个数字的第一个数分别乘以第二个数的从个位数开始的个位数,进行适当的进位就行了
一位位相乘,最后计算出结果
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string a;
getline(cin,a);
string b;
getline(cin,b);
int m=a.size();
int n=b.size();
string c(m+n,'0');
int sum=0;
int p,q;
for(int i=m-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
p=m+n-2-i-j;
sum+=(b[j]-'0')*(a[i]-'0');
q=(c[p]-'0')+(sum%10);
c[p]=(char)(q%10+'0');
sum/=10;
sum+=q/10;
}
p=m+n-1-i;
}
c=c.substr(0,p);
reverse(c.begin(),c.end());
cout<<c.c_str()<<endl;
return 0;
}