求助大佬
题目说两个数都是2000位以下,为什么a和b两个数组开到2500都不够,但是开到4000就够了呀
#include<iostream>
#include<string>
using namespace std;
int a[2500],b[2500],c[4500];
int main()
{
string A,B;
cin>>A>>B;
a[0]=A.length(),b[0]=B.length();
int len=a[0]+b[0];
for(int i=1;i<=a[0];i++)
a[i]=A[a[0]-i]-'0';
for(int i=1;i<=b[0];i++)
b[i]=B[b[0]-i]-'0';
for(int i=1;i<=len;i++)
for(int j=1;j<=len;j++)
c[j+i-1]+=a[i]*b[j];
for(int i=1;i<=len;i++)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[len]==0&&len>1) len--;
for(int i=len;i>0;i--)
cout<<c[i];
return 0;
}