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 ;
    
    }
   
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容