172. Factorial Trailing Zeroes

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

这是一道数学题,把N!写成乘数。那么零的产生是因为2*5而来的,因为每隔一个五,肯定有不止一个2,你可以考虑一下5-25之间有几个数是2的倍数。那么我们只用考虑N!中五的个数,每次有一个5,就会有1个0,同理,当有25时,会产生两个0,由于我们在计算五的个数时已经计算了一次5了,所以25的时候还要再多一次。
简单的说,公式是:
N/5+N/25+N/125+N/625+...直到除的结果是0。

class Solution {
    public int trailingZeroes(int n) {
       int count = 0;
        while(n>0)
        {
            count+=n/5;
            n=n/5;
        }
        return count ;
    
    }
   
}

你可能感兴趣的:(172. Factorial Trailing Zeroes)