高精度乘法
基本套路
1.字符串读入
2.字符串转数组
3.核心运算
4.前导消0
5.逆序输出
#include<bits/stdc++.h>
using namespace std;
const int N =100005;
int a[N],b[N],c[N];
string x,y;
int main(){
//字符串读入
cin>>x>>y;
//字符串转数组
int la=x.length(),lb=y.length();
for(int i=0;i<la;i++)
a[la-i]=x[i]-'0';
for(int i=0;i<lb;i++)
b[lb-i]=y[i]-'0';
//计算
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]+=c[i+j-1]/10;
c[i+j-1]%=10;
}
}
//c数组的最大长度为la+lb
int lc=la+lb;
//前导消0,至少保留一位0
while(c[lc]==0 && lc>1){
lc--;
}
for(int i=lc;i>=1;i--)
printf("%d",c[i]);
return 0;
}