算法思路:首先是算阶乘,可以使用内置函数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