n的阶乘结果后面0的个数

less than 1 minute read

Published:

思路

其实乘法后面0的个数取决于2*5的对数,也就是有多少对2*5就有多少个0。例如0到10(包括10),就存在两对2*5,所以10的阶乘后面就有两个0,但是如何分析n中的2*5的对数呢?这里由于2因子多余5因子,所以我们只要找5因子就好了,也就是有多少个5因子就有多少个0。

代码实现

public static int numOfZero(int n) {
  int sum = 0;
  while(n != 0) {
    n /= 5;
    sum += n;
  }
  return sum;
}