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