高精度乘法 c++实现
高精度乘法 c++实现
高精度乘法
和加法比较像。代码:
#include <iostream>
#include <cstring>
using namespace std;
int main(){<!-- -->
char a1[100],b1[100];
int a[100],b[100],lena,lenb,lenc=1,c[100]={<!-- -->0},i,x=0,p=1,q=1,j;
gets(a1);
gets(b1);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
lena=strlen(a1);
lenb=strlen(b1);
for(i=0;i<lena;i++)
a[lena-i]=a1[i]-48;
for(i=0;i<lenb;i++)
b[lenb-i]=b1[i]-48;
lenc=1;
for(i=1;i<=lena;i++){<!-- -->
x=0;
for(j=1;j<=lenb;j++){<!-- -->
c[i+j-1]=c[i+j-1]+a[i]*b[j]+x;
x=c[i+j-1]/10;
c[i+j-1]%=10;
}
c[i+lenb]=x;
}
lenc=lena+lenb;
while(c[lenc]==0&&lenc>1)
lenc--;
for(i=lenc;i>=1;i--)
cout<<c[i];
return 0;
}
转载于网络 侵权联系作者立即删除QAQ

浙公网安备 33010602011771号