Hi all,
I have written a simple function to compute factorial in C++.
It computes OK until 31! which is 738197504. Now for factorial 32 it gives me a negative result and for 34 it gives me 0.
I know that on my machine LONG_MAX is 2147483647.
So in my recursive algorithm when I try to compute 32! it would cross the max value. That is OK but then I should get an error message and not an incorrect value.
Here comes the code
"
const long factorial(const long n)
{
long fn = 1;
if (n>1) fn = (n*factorial(n-1));
return fn;
"
ANY IDEA???