why

P1303 A*B Problem

德克萨斯 @ 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

P1303


by 樱初音斗橡皮 @ 2019-10-20 09:51:23

@清风世家 数大小是2000,你只开了1000的数组


by 樱雪喵 @ 2019-10-20 09:52:01

@清风世家 数组开小了,改成2001就可以AC


|