0
点赞
收藏
分享

微信扫一扫

leetcode-172. 阶乘后的零刷题笔记(c++)


写在前面

  • 数学题
  • ​n的阶乘的尾部为0的个数主要取决于其中5的个数。​
  • ​阶乘尾数为0,要得到0的尾数,就需要偶数与5相乘,由于偶数个数远远多于5的个数,所以有几个5,尾数就有几个0​
  • ​同时,10可以看做2*5(1个5),25看做5*5(2个5)​

题目详情

阶乘后的零

给定一个整数 n,返回 n! 结果尾数中零的数量。

示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。

示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.

说明: 你算法的时间复杂度应为 O(log n)

ac题目

class Solution {
public:
int trailingZeroes(int n) {
int sum = 0;
while(n) {
sum += n/5;
n /= 5;
}
return sum;
}
};

  • 参考文章
  • 力扣172. 阶乘后的零(取余???位运算出发???)


举报

相关推荐

0 条评论