【C6-4】高精度乘

孙一铭  •  29天前


include<bits/stdc++.h>

using namespace std; int a[5000],b[5000],c[50000],lena,lenb,lenc,x; string n1,n2; int main () {

cin>>n1>>n2;
lena=n1.size();
lenb=n2.size();
for(int i=1;i<=lena;i++)a[i]=n1[lena-i]-'0';
for(int i=1;i<=lenb;i++)b[i]=n2[lenb-i]-'0';
for(int i=1;i<=lena;i++)
{
	for(int j=1;j<=lenb;j++)
	{
		c[i+j-1]+=a[i]*b[j];
	}
}
lenc=lena+lenb;
for(int i=1;i<=lenc;i++){
	if(c[i]>=10){
		c[i+1]+=c[i]/10;
		c[i]%=10;
	}
}
while(c[lenc]==0&&lenc>1) lenc--;
for(int i=lenc;i>=1;i--){
	cout<<c[i];
}
return 0;

}


评论: