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

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

题目描述

请设计一个算法,计算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); 
    }
};

  

原文地址:https://www.cnblogs.com/zhang-yd/p/7220640.html