seven7777 @ 2021-02-12 12:38:55
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[520]={0},b[520]={0},c[520]={0};
string A,B;
cin>>A>>B;
int len=A.length()+B.length();
for(int i=1,j=A.length()-1;j>=0;i++,j--)
a[i]=A[j]-'0';
for(int i=1,j=B.length()-1;j>=0;i++,j--)
b[i]=B[j]-'0';
for(int i=1;i<=A.length();i++)
{
for(int j=1;j<=B.length();j++)
{
c[i+j-1]+=a[i]*b[j];
}
}
for(int i=1;i<=len;i++)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
if(c[len]==0)
len--;
for(int i=len;i>=1;i--)
{
cout<<c[i];
}
return 0;
}
by _caiji_ @ 2021-02-12 12:41:21
每个数字不超过
10^{2000} ,需用高精。
int a[520]={0},b[520]={0},c[520]={0};
您数组开小了,另外 c 数组存储的是积,需要双倍长度。
@seven7777
by cq_loves_Capoo @ 2021-02-12 12:44:56
@seven7777
1.数组开小了
2.0 的时候没有输出