程序员面试金典--阶乘尾零
题目描述
请设计一个算法,计算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);
}
};