题目:计算某个数阶乘尾部所含0的个数。例如:5!=1*2*3*4*5=120尾部含有一个0.
思路:我们知道一个数要产生0,该数肯定是2的倍数或是5的倍数。对于对于某个数的阶乘,我们将其做质因数分解,n!=(2^x)(3^y)(5^z)*…….,产生0的个数肯定为min(x,z),而一个数分解为5的倍数的个数肯定小于等于2的倍数的个数。即min(x,z) = z,因此我们只需考虑5的倍数的个数。
int numberOf0(int n){
int count = 0;
int j;
for(int i =5;i <= n;i++){
j = i;
while(j%5 == 0){
count++;
j = j / 5;
}
}
return count;
}