#include<bits/stdc++.h>
const int N = 2e4+9;
int a[N];
int b[N];
int c[N];
using namespace std;
int main(){
string str1;
string str2;
cin>>str1>>str2;
int len1 = str1.size();
int len2 = str2.size();
// if(str1 == "0"||str2 == "0")
// {
// cout<<"0";
// return 0;
// }
// cout<<"len1 "<<len1<<endl;
// cout<<"len2 "<<len2<<endl;
for(int i =1,j = len1 - 1;i<=len1;++i,--j)
{
a[i] = str1[j]-'0';
}
for(int i =1,j = len2 - 1;i<=len2;++i,--j)
{
b[i] = str2[j]-'0';
}
// for(int i =1;i<=len1;++i)
// {
// cout<<a[i]<<" ";
// }
// cout<<endl;
// for(int j =1;j<=len2;++j)
// {
// cout<<b[j]<<' ';
// }
for(int i = 1;i<=len1;++i)
{
for(int j = 1;j<=len2;++j)
{
// cout<<"a[i]*b[j] "<<a[i]*b[j]<<endl;
c[i+j - 1] =(a[i] * b[j] )+c[i+j-1] ;
c[i+j] = c[i+j - 1]/10 + c[i+j];
c[i+j - 1] = c[i+j - 1]%10;
// cout<<i+j-1<<" " <<c[i+j - 1]<<endl;
// cout<<i+j<<" "<<c[i+j]<<endl;
}
}
while(c[len1+len2] == 0&& len1+len2 > 1) {
len1--;
//cout<<len1+len2<<endl;
}
// cout<<len1+len2<<endl;
for(int i =len1+len2;i >= 1;--i)
{
cout<<c[i];
}
return 0;
}
高精度乘法
最新推荐文章于 2025-05-24 09:58:06 发布