Iteration for Factorials
Rafael Sachetto
rsachetto at gmail.com
Mon Oct 22 14:44:15 EDT 2007
The right way is:
import operator
def fact(x):
return reduce(operator.mul, xrange(1,x+1))
On 10/22/07, Paul Rudin <paul.nospam at rudin.co.uk> wrote:
>
> "mensanator at aol.com" <mensanator at aol.com> writes:
>
> > On Oct 22, 7:50 am, Duncan Booth <duncan.bo... at invalid.invalid> wrote:
> >> Py-Fun <lorna.bu... at gmail.com> wrote:
> >> > I'm stuck trying to write a function that generates a factorial of a
> >> > number using iteration and not recursion. Any simple ideas would be
> >> > appreciated.
> >>
> >> This version avoids doing anything fancier than adding 1, so it should
> be
> >> simple enough for anyone:
> >>
> >> def factorial(e):
> >> a = 1
> >> for b in range(e):
> >> c = 0
> >> for j in range(b, -1, -1):
> >> for d in range(a):
> >> c += 1
> >> a = c
> >> return a
> >
> > Not simple enough for my taste:
> >
> >>>> import gmpy
> >>>> gmpy.fac(10)
> > mpz(3628800)
>
> I haven't followed all this thread, but has anyone yet done:
>
> import operator
> def fact(x):
> return reduce(operator.mul, xrange(1,x))
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
Rafael Sachetto Oliveira
Sir - Simple Image Resizer
http://rsachetto.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20071022/88455668/attachment.html>
More information about the Python-list
mailing list