leetcode 172 Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
解决思路:
决定阶乘末尾零的个数其实是数列中5出现的次数,比如5的阶乘一个零。1024的阶乘末尾到底有几个零呢?
http://bbs.csdn.net/topics/380161955
代码如下:
int trailingZeroes(int n)
{
int total = 0;
while(n>=5)
{
n = (n-(n%5))/5;
total = total + n;
}
return total;
}
python 的解决方案:
class Solution:
# @return an integer
def trailingZeroes(self, n):
factor, count = 5, 0
while True:
curCount = n // factor
if not curCount:
break
count += curCount
factor *= 5
return count
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步