python之N阶乘结果末尾有几个0

时间:2023-03-09 08:19:53
python之N阶乘结果末尾有几个0

算法思路:首先是算阶乘,可以使用内置函数reduce实现,其次是计算结果的末尾有几个0,可以使用除余判断

代码如下:

#!/usr/bin/env python
#-*-coding:utf-8-*- #定义一个函数实现算法
def zeroTest(n):
#定义一个列表把1-n的数存入
listN = []
for i in range(1,n+1):
listN.append(i) #计算阶乘
factorialN = reduce(lambda x,y:x*y,listN) #定义0的个数
zeroN = 0 #循环计算
while True:
#如果除余不为0,结束
if factorialN%10:
break #计算除余后的阶乘值
factorialN = factorialN/10
#增加0个数
zeroN += 1 return zeroN zeroTimes = zeroTest(n)
print zeroTimes