LeetCode 172: Factorial Trailing Zeroes

题目链接:

https://leetcode.com/problems/factorial-trailing-zeroes/description/

描述

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.

算法思想:

组合数学中的题目。
因为所有尾随0都来自因子5 * 2。
但有时一个数字可能有几个5个因数,例如25个有5个因子,125个有5个因子。 在n! 操作,因数2的个数永远比5多。 所以我们只计算从1到n的所有数字中的5个因素。

源代码

/* Author:杨林峯 Date:2017.12.30 LeetCode(172):三点顺序 */
class Solution {
public:
    int trailingZeroes(int n) {
        int ans = 0;
        while(n)
        {
            ans += n/5;
            n /= 5;
        }
        return ans;
    }
};
点赞