class Solution: # 超時 首先是用的暴力的方法算的,直接算出階乘,然後求出有幾個零 # 但是提交的時候直接顯示超時。 def trailingZeroes(self, n: int) -> int: sum_0,sum_num = 0,1 for index in range(1,n ...
class Solution:
# 超時 首先是用的暴力的方法算的,直接算出階乘,然後求出有幾個零
# 但是提交的時候直接顯示超時。
def trailingZeroes(self, n: int) -> int:
sum_0,sum_num = 0,1
for index in range(1,n + 1):
sum_num *= index
while sum_num % 10 == 0:
sum_0 += 1
sum_num = sum_num // 10
return sum_0
# 然後看了大神的方法,明白了結尾有一個零階乘沖肯定有一個 5 ,因此
# 就相當於階乘裡邊有幾個5,最後的結果末尾就有幾個零
# 但是當n = 25 的時候,階乘裡邊有6個5,而不是由5個,因為25 = 5 * 5
def trailingZeroes(self, n: int) -> int:
# 定義一個sum變數
sum = 0
# 註意這裡,當n為5的幾次方時,都可以多拆出來一個5
while n > 0:
n = n // 5
sum += n
return sum