On 11/28/05, O Plameras <[EMAIL PROTECTED]> wrote: > Another way of saying: factorial 0 = 1 is a "by definition" thing in > Mathematics and everybody then accepts it, > > i.e., there is no logical basis for it.
Actually, there is a method to the madness. To quote MathWorld: "The special case 0! is defined to have value 0!==1, consistent with the combinatorial interpretation of there being exactly one way to arrange zero objects (i.e., there is a single permutation of zero elements, namely the empty set emptyset)." That sounds entirely reasonable to me. Which reminds me, my iterative variation of the algorithm totally dropped the ball on this one. D'oh! :) Corrected (if a bit less elegant): --------------BEGIN CODE ----------------------------------------------- int factorial(int y) { if (!y) { return 1; } int multiplier, result = y; for (multiplier = 2; multiplier < y; multiplier++) { result *= multiplier; } return result; } ---------------- END CODE ----------------------------------------------- Tess (who apologises for her previous 0 case missing lameness) -- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html