[LintCode] Trailing Zeroes 末尾零的个数
Write an algorithm which computes the number of trailing zeros in n factorial.
Example
11! = 39916800, so the out should be 2
Challenge
O(log N) time
LeetCode上的原题,请参见我之前的博客Factorial Trailing Zeroes。
解法一:
class Solution { public: // param n : description of n // return: description of return long long trailingZeros(long long n) { long long res = 0; while (n > 0) { res += n / 5; n /= 5; } return res; } };
解法二:
class Solution { public: // param n : description of n // return: description of return long long trailingZeros(long long n) { return n == 0 ? 0 : n / 5 + trailingZeros(n / 5); } };