自己写着练手吧
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int INF=100000;
int s3[INF]; //存储乘积
void Multiplication(string s1,string s2) //计算大数乘法
{
memset(s3,0,sizeof(s3));
for(int i=s1.length()-1;i>=0;i--)
{
for(int j=s2.length()-1;j>=0;j--)
{
s3[i+j]+=(s1[i]-'0')*(s2[j]-'0');
if((i+j)!=0) //如果第一位有进位的话,不需向前进位,直接保存结果输出就行
{
s3[i+j-1]+=s3[i+j]/10; //进位
s3[i+j]%=10;
}
}
}
}
int main()
{
string a,b;
cin>>a>>b;
int p=a.length()+b.length()-2; //乘积总长度
Multiplication(a,b);
for(int i=0;i<=p;i++)
cout<<s3[i];
cout<<endl;
return 0;
}