【Day3】用python实现n的阶乘

方法1:math.factorial(x)

import math

x=4
value = math.factorial(x)
print(value)

输出结果:

24

方法2:reduce函数

from functools import reduce

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

if __name__ == '__main__':
    print(factorial_1(4))

这里还有另外一个写法,注意就是右边的参数是列表的形式

from functools import reduce

def factorial_2(n):
    l=[]
    for i in range(1, n + 1):
        l.append(i)
    return reduce(lambda x, y: x * y, [1] + l)

if __name__ == '__main__':
    print(factorial_2(4))

输出结果:

24

方法3:递归实现

def factorial_3(n):
    if n == 0:

        return 1

    else:

        return n * factorial_3(n - 1)

if __name__ == '__main__':
    print(factorial_3(4))

输出结果:

24

 

posted @ 2020-12-02 10:35  做一只热爱生活的小透明  阅读(1379)  评论(0编辑  收藏  举报