题目链接:
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;
}
};