【LeetCode 简单题】40-阶乘后的0

本文介绍了LeetCode第40题的解决方案,探讨了如何计算阶乘结果尾部的零数量。解法指出,由于0来自于10,因此关键在于找到数字中5的个数。提出公式f(n!) = k + f(k!),其中k = n / 5,并通过举例展示了计算过程。推荐查看解法1的参考博客。
摘要由CSDN通过智能技术生成

声明:

今天是第40道题。给定一个整数 n,返回 n! 结果尾数中零的数量。以下所有代码经过楼主验证都能在LeetCode上执行成功,代码也是借鉴别人的,在文末会附上参考的博客链接,如果侵犯了博主的相关权益,请联系我删除

(手动比心ღ( ´・ᴗ・` ))

正文

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

示例 1:

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

示例 2:

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

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

解法1。注意题干对时间复杂度的要求,迭代递归肯定不满足,所以这道题需要巧解。这里先给出其计算公式,推导过程祥见链接。其实有0就意味着有10,所以关系式可以写成:有0-->有10-->有5*2-->有5(有5必有2,因为2比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值