77家的会客2010

Tag: reduce | 记录数: 1
PYTHON实现阶乘算法
Weather:忘了啥了,反正挺舒服

今天看到FoxPro的一道题,要写出P = N!的程序及结果,这不就是个求阶乘吗?

一般程序弄个双循环就可以了,不过PYTHON就比较方便,循环一次就可以了。

  def f(n):
    c = 1
    for i in range(n+1):
        c  *= i
    return c

或者是用递归的方法也比较方便。

def f(n):
 if n > 1:
  return n*f(n-1)
 else:
  return 1



def f(n):
 p = 1
 if n > 1:
  p = n*f(n-1)
 return p

再后来一想,PYTHON有lambda方法,会不会有更好的方法,于是reduce方法,一句话搞定阶乘。

用PYTHON的reduce方法

def foo(n):
    return reduce(lambda x,y: x*y, range(1,n+1)