今天和大家聊的问题叫做 阶乘后的零 ,我们先来看题面:https://leetcode-cn.com/problems/factorial-trailing-zeroes/
Given an integer n, return the number of trailing zeroes in n!.
题意
给定一个整数 n,返回 n! 结果尾数中零的数量。
样例
示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。 示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零.
解题
本题如果暴力乘计数的话必然会爆范围,因为数字增长的速度太快了我们分析一下:什么时候会出现零呢,只有乘因子有5的数字时会有零出现。那么在1-n范围内5的倍数都是会增长零的。而且还有一个需要注意的地方是,有些数字如25、125等里面5的因子不止一个,有几个因子5就加几。
class Solution { public: int trailingZeroes(int n) { int count = 0; while (n > 1) count += (n /= 5); return count; } };
好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。