package com.raylew.algorithm.ntoj;
import java.math.BigDecimal;
import java.math.BigInteger;
/*
* 求一个数的阶乘数末尾的0的个数
*/
public class Unknown {
private static int zeroNum(int n) {
int ret = 0, j;
for (int i = 1; i <= n; i++) {
j = i;
while (j % 5 == 0) {
ret++;
j = j / 5;
}
}
return ret;
}
private static BigInteger fac(long n) {
BigDecimal a = new BigDecimal(1);
BigDecimal b;
for (long i = 1; i <= n; i++) {
b = new BigDecimal(i);
a = a.multiply(b);
}
return a.toBigInteger();
}
public static void main(String[] args) {
System.out.println("12!为" + fac(12) + ",后面零的个数为" + zeroNum(12));
}
}