给定一个整数 n ,返回 n! 结果中尾随零的数量。
提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
示例 1:
输入:n = 3 输出:0 解释:3! = 6 ,不含尾随 0
示例 2:
输入:n = 5 输出:1 解释:5! = 120 ,有一个尾随 0
示例 3:
输入:n = 0 输出:0
c语言解法
- int trailingZeroes(int n){
-
- int count = 0;
- while(n >= 5) {
- count += n / 5;
- n /= 5;
- }
- return count;
-
- }
由题可知:每5个数则末尾会多一个零,因为:5乘任何带以二为因数的数尾部均会添加一个零,利用这个特点题目要求的问题可转化为找给出的n共有多少存在以5为因数的数,利用阶乘的知识即每以5为阶乘记录每次除五后的数,不断找出因数5,最后返回结果即可
本题考察数学知识,通过找规律的方法将问题本质剖析清楚后解题事半功倍。