使用reduce()函数实现N!不溢出

1、用reduce函数,不会有溢出的情况
#输入一个数n,生成从1到N的数字列表,如[1,2,3,..n]
L=[i for i in range(1,int(input())+1)]
#使用reduce函数实现列表中的每一个数的乘积
k=reduce(lambda x,y:x*y,L)

2、使用递归实现的话,当N过大时,会溢出

def fun(n):
    return n*fun(n-1)
kk=fun(20)

原文地址:https://www.cnblogs.com/jodie2019/p/11953665.html