跳至主要內容

面试题 16.05. 阶乘尾数

ITCharge小于 1 分钟

面试题 16.05. 阶乘尾数open in new window

  • 标签:数学
  • 难度:简单

题目链接

题目大意

给定一个整数 n

要求:计算 n 的阶乘中尾随零的数量。

注意:0<=n<=1040 <= n <= 10^4

解题思路

阶乘中,末尾 0 的来源只有 2 * 5。所以尾随 0 的个数为 2 的倍数个数和 5 的倍数个数的最小值。又因为 2 < 52 的倍数个数肯定小于等于 5 的倍数,所以直接统计 5 的倍数个数即可。

代码

class Solution:
    def trailingZeroes(self, n: int) -> int:
        count = 0
        while n > 0:
            count += n // 5
            n = n // 5
        return count