原题
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
代码实现
计算阶乘n的尾数0的个数
public int TrailingZeroes(int n) {
//Because all trailing 0 is from factors 5 * 2.
//But sometimes one number may have several 5 factors,
//for example, 25 have two 5 factors, 125 have three 5 factors.
//In the n! operation, factors 2 is always ample.
//So we just count how many 5 factors in all number from 1 to n.
//One line code:
if (n == 0) return 0;
return n/5 + TrailingZeroes(n/5);
}
题库
Leetcode算法题目解决方案每天更新在github库中,欢迎感兴趣的朋友加入进来,也欢迎star,或pull request。https://github.com/jackzhenguo/leetcode-csharp