leetcode 每日一题 2022/3/25 172. 阶乘后的零

给定一个整数 n ,返回 n! 结果中尾随零的数量。
【leetcode 每日一题 2022/3/25 172. 阶乘后的零】提示 n! = n (n - 1) (n - 2) ... 3 2 1

//首先,一个数只有因子含有10才会有尾随0 //其次,10可以由2和5两个质数相乘得到 //之后,因为任何一个整数的阶乘包含因子2的个数都大于因子5的个数 //所以,最终只需要统计n!含有多少个因子5 //拿1000!举例,1~1000,其中含有1000/5,即200个5的倍数 //若这200个数都含有1个因子5,那直接返回200就好 //但是含有因子5的个数有不止一个的 //所以需要计算含有2个的,也就是能被25整除的 //以此类推再计算含有3个的,直到被除数大于n结束public int trailingZeroes(int n) { int res = 0, tmp = 5; while (tmp <= n) { res += n / tmp; tmp *= 5; } return res; }

    推荐阅读