#include <iostream>
#include <string.h>
#include <malloc.h>
using namespace std;
void multiply(const char *a,const char *b)
{
int ca=strlen(a);
int cb=strlen(b);
int *s=(int *)malloc(sizeof(int)*(ca+cb));
for(int i=0; i<ca+cb; i++)
s[i]=0;
for(int i=0; i<ca; i++)
for(int j=0; j<cb; j++)
s[i+j+1]+=(a[i]-'0')*(b[j]-'0');
for(int i=ca+cb-1; i>=0; i--)
if (s[i]>=10)
{
s[i-1]+=s[i]/10;
s[i]%=10;
}
int k=0;
for(; s[k]==0&&k<ca+cb-1; k++);
for(; k<ca+cb; k++)
cout<<s[k];
cout<<endl;
free(s);
}
int main()
{
string num1,num2;
cin>>num1>>num2;
const char *p1=num1.c_str();
const char *p2=num2.c_str();
multiply(p1,p2);
return 0;
}
大数乘法运算实现
最新推荐文章于 2021-05-17 14:09:52 发布