本文主要是介绍高精度算法(大数与大数之间的乘法),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
高精度乘法
#include<bits/stdc++.h>
using namespace std;
char s1[2005],s2[2005];
int a[2005],b[2005],c[2005];
int main(){
int la,lb,lc;
scanf("%s",&s1);
scanf("%s",&s2);
la = strlen(s1);
lb = strlen(s2);
for(int i=0;i<la;i++) a[la-i] = s1[i] - '0';
for(int i=0;i<lb;i++) b[lb-i] = s2[i] - '0';
lc = la + lb;
for(int i=1;i<=la;i++){
for(int j=1;j<=lb;j++){
c[i+j-1] = a[i]*b[j];
c[i+j] += a[i]*b[j]/10;
c[i+j-1] %= 10;
}
}
if(c[lc] == 0 && lc > 0) lc--;
for(int i=lc;i>0;i--) printf("%d",c[i]);
return 0;
}
这篇关于高精度算法(大数与大数之间的乘法)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!