#include <iostream>
#include <string>
using namespace std;
void multiply (const char *a, const char *b){
int i,j,la,lb;
la=strlen(a);
lb=strlen(b);
int *s=(int *)malloc(sizeof(int)*(la+lb));
//int*s=new int[la+lb];
for(i=0;i<=la+lb-1;i++) s[i]=0;//初始化
for(i=0;i<la;i++){
for(j=0;j<lb;j++)
s[i+j+1]+=(a[i]-'0')*(b[j]-'0');
}
for(i=la+lb-1;i>=0;i--){//实现移位
s[i]=s[i]%10;
s[i-1]+=s[i]/10;
}
int tag=0;
for(i=0;i<la+lb;i++){
if(s[i]==0&&tag==0) tag=1;
else cout<<s[i];
}
cout<<endl;
}
int main(){
string num1,num2;
cout<<"plesea put in the two number"<<endl;
cin>>num1>>num2;
const char *p1=num1.c_str();
const char *p2=num2.c_str();
multiply(p1,p2);
return 1;
}
大数乘法
最新推荐文章于 2023-02-11 11:25:04 发布