Failing 1 test case(large factorial)

#include <bits/stdc++.h>

using namespace std;

#define MAX 500

int Multiply(int x, int res[], int res_size);

void Factorial(int n)
{
int res[MAX];
res[0]=1;

int res_size = 1;
for(int x = 2; x<=n; x++)
{
    res_size = Multiply(x, res, res_size);
}
for(int i=res_size-1; i>=0; i--)
{
    cout<<res[i];
}

}
int Multiply(int x, int res[], int res_size)
{
int carry=0;

for(int i=0; i<res_size; i++)
{
    int prod=res[i]*x+carry;
    res[i] = prod%10;
    carry = prod/10;
}
while (carry) {
res[res_size]=carry%10;
carry = carry /10;
res_size++;
}
return res_size;

}
int main()
{
int n;
cin>>n;
Factorial(n);
return 0;
}
could you help me out in finding that why this code is failing 1 test case? The online judge shows run-error.

Hey @utkarshvashisth94
For 500! the result will have a length greater than MAX which is set as 500 here.
Set the MAX length longer.

If your doubt is resolved please mark it as closed.

1 Like