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