程序员面试金典--阶乘尾零

程序员面试金典--阶乘尾零

 

题目描述

请设计一个算法,计算n的阶乘有多少个尾随零。

给定一个int n,请返回n的阶乘的尾零个数。保证n为正整数。

测试样例:
5
返回:1

 

其实就是计算5 和2 的约数个数,两者最小即可。

 

class Factor {
public:
    int getFactorSuffixZero(int n) {
        // write code here
        int cnt5 = 0, cnt2 = 0; 
        for(int i=5; i<=n; i = 5*i){
            cnt5 += n/i; 
        } 
        for(int i=2; i<=n; i = 2*i) {
            cnt2 += n/i; 
        }
        return min(cnt2, cnt5); 
    }
};

  

posted @ 2017-07-22 11:02  zhang--yd  阅读(170)  评论(0编辑  收藏  举报