德克萨斯 @ 2019-10-20 09:49:34
最后一个为什么是RE 求助
#include<bits/stdc++.h>
using namespace std;
int a[1001],b[1001],c[1001];
void read(int a[])
{
string s;
cin>>s;
a[0]=s.size( );
for(int i=1;i<=a[0];i++)
a[i]=s[a[0]-i]-'0';
while(a[a[0]]==0&&a[0]>0) a[0]--;
}
void mul(int a[],int b[] )
{
c[0]=a[0]+b[0]-1;
for(int i=1;i<=a[0];i++)
for(int j=1;j<=b[0];j++)
c[i+j-1]+=a[i]*b[j];
for(int i=1;i<=c[0];i++)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[c[0]+1])
{
c[0]++;
c[c[0]+1]=c[c[0]]/10;
c[c[0]]%=10;
}
while(c[c[0]]==0&&c[0]>0) c[0]--;
}
void print( )
{
if(c[0]==0)
{
cout<<0<<endl;
return;
}
for(int i=c[0];i>0;i--)
cout<<c[i];
}
int main(void)
{
read(a);
read(b);
mul(a,b);
print( );
}
by 德克萨斯 @ 2019-10-20 09:51:18
by 樱初音斗橡皮 @ 2019-10-20 09:51:23
@清风世家 数大小是2000,你只开了1000的数组
by 樱雪喵 @ 2019-10-20 09:52:01
@清风世家 数组开小了,改成2001就可以AC