阅读 37

LeetCode之Factorial Trailing Zeroes(Kotlin)

问题:


方法: 首先想到的方法肯定是计算出阶乘,然后查尾部0的个数,但是存在大数溢出的问题。然后思考后发现尾数0的个数只与因子中10的个数有关,即只和5*偶数的个数有关,通过观察可以发现阶乘中5的个数要少于偶数的个数,所以统计所有5的个数即为尾数0的个数。

class FactorialTrailingZeroes {
    fun trailingZeroes(input: Int): Int {
        var n = input
        var result = 0
        while (n > 0) {
            n /= 5
            result += n
        }
        return result
    }
}

fun main(args: Array<String>) {
    val factorialTrailingZeroes = FactorialTrailingZeroes()
    print(factorialTrailingZeroes.trailingZeroes(14))
}
复制代码

有问题随时沟通

具体代码实现可以参考Github