leetcode——172.阶乘后的零

Posted taoyuxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode——172.阶乘后的零相关的知识,希望对你有一定的参考价值。

超时:

 1 class Solution:
 2     def trailingZeroes(self, n: int) -> int:
 3         if n<5:
 4             return 0
 5         b=n
 6         i=n
 7         while i>1:
 8             i=i-1
 9             b=b*i
10         
11         j=0    
12         t=10
13         while b%t==0:
14             j=j+1
15             t=t*10
16         return j

再次超出时间限制:

 1 class Solution:
 2     def trailingZeroes(self, n: int) -> int:
 3         if n<5:
 4             return 0
 5         b=n
 6         i=n
 7         while i>1:
 8             i=i-1
 9             b=b*i
10         b=str(b)
11 
12         for i in range(len(b)-1,-1,-1):
13             if int(b[i])>0:
14                 return len(b)-1-i

 

通过:

数因子里面5的个数:

1 class Solution:
2     def trailingZeroes(self, n: int) -> int:
3         if n<5:
4             return 0
5         count=0
6         while n>=5:
7             count=count+n//5
8             n=n//5
9         return count
执行用时 :72 ms, 在所有 Python3 提交中击败了17.11%的用户
内存消耗 :13.7 MB, 在所有 Python3 提交中击败了5.19%的用户

                                                                                          ——2019.9.24

 

以上是关于leetcode——172.阶乘后的零的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode172. 阶乘后的零

LeetCode 172. 阶乘后的零

leetcode——172.阶乘后的零

LeetCode 172 Factorial Trailing Zeroes(阶乘后的零)(*)

172. 阶乘后的零——Leetcode每日一题

每天一题LeetCode 172. 阶乘后的零