leetcode[172]Factorial Trailing Zeroes

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

Note: Your solution should be in logarithmic time complexity.

给定一个整数n,返回n!(n的阶乘)数字中的后缀0的个数。

n!的后缀0总是由质因子2和质因子5相乘得来的。2的个数大于等于5的个数,计算出5的个数问题就解决了。

n!后缀0的个数 = n!质因子中5的个数 = floor(n/5) + floor(n/25) + floor(n/125) + ....

class Solution {

public:

/**

n!后缀0的个数 = n!质因子中5的个数

              = floor(n/5) + floor(n/25) + floor(n/125) + ....

*/

    int trailingZeroes(int n) {

       int res=0;

       while(n/5)

       {

           n/=5;

           res+=n;

       }

       return res;

    }

};

 

你可能感兴趣的:(LeetCode)