java求n的阶乘的尾随零
时间: 2023-11-04 19:01:44 浏览: 80
java阶乘计算获得结果末尾0的个数代码实现
要求一个数的阶乘的尾随零,可以通过计算其中因子2和5的个数来实现。因为每一对2和5相乘可以得到一个10,而10是由2和5相乘得到的。由此可以得出,一个数的阶乘末尾0的个数,就等于其中因子2和5中较小的个数。
具体来说,对于一个正整数n,它的阶乘的末尾0的个数,等于n中因子5的个数加上n中因子25的个数加上n中因子125的个数……以此类推。
以下是一个Java实现:
```java
public static int trailingZeros(int n) {
int count = 0;
while (n > 0) {
count += n / 5; // 计算n中因子5的个数
n /= 5;
}
return count;
}
```
这个方法的时间复杂度是O(log n)。
阅读全文