class Solution:
def trailingZeroes(self, n: int) -> int:
r = 0
while n >= 5:
n = n // 5
r+=n
return r
'''
分析
我的思考过程是这样的:
1)如果将阶乘结果计算出来的话,求零可以采用能不能整出10的倍数来看,或者将结果转为字符串,利用str.count()求’0’的个数。
2)但是计算阶乘要不用递归要不用递推,运行时间都要很长,无法满足题目中的logn要求。
3)于是想到求0也就是求其中2*5的个数,也就是5的个数,因为每一个偶数都含2,只要有5肯定有2。然后我就遍历求能不能被5整除了。。。好蠢。。。还遍历
4)正确的做法是使用n除以5。。。具体的话上述链接分析得很好。
'''
172. 阶乘后的零
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 给定一个整数 n,返回 n! 结果尾数中零的数量。尾数的0 即结果中拥有约数10的数量,10 = 2 * 5;1....