yeah, simple and correct, I like that. :-)
2007/6/9, Dann Corbit <[EMAIL PROTECTED]>:

> -----Original Message-----
[snip]
> Hum... I think there is a little improvement: when n is too large,(say
> n>10, 000) we can use Stirling's formula to get the estimated value of
> n! :-)

## Advertising

Or (rather) the log base 10 of Stirling's formula. The n! estimator
will overflow for sure, unless we take the log of it.
Rather than all that, why not just figure out what the largest number of
digits we will allow is and then don't allow inputs that will generate
more than that.
The program I gave could be run with the target accuracy as the break
out of the loop and then the test would be:
<type> factorial(<type> n)
{
if (n > CONSTANT_PRECOMPUTED_LIMIT)
return NULL;
else
{
return compute_actual_factorial(n);
}
}

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org