172. Factorial Trailing Zeroes

时间:2017-10-22 10:18:08   收藏:0   阅读:215

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

Note: Your solution should be in logarithmic time complexity.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

 

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.

public int trailingZeroes(int n) {
        return n == 0 ? 0 : (n / 5 + trailingZeroes(n / 5));
    }

  

原文:http://www.cnblogs.com/apanda009/p/7707621.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!