[LeetCode] Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
计算n!结果的末尾有几个零。
题目要求复杂度为对数,所以不能使用暴力算法:即先计算n!,然就依次除以10计算0个个数。
末尾的零是由2 * 5得到的,所以需要计算n中2和5的个数即可。又因为2的个数远多于5的个数,只要计算5的个数即可。
class Solution { public: int trailingZeroes(int n) { int res = 0; while (n) { n /= 5; res += n; } return res; } }; // 3 ms
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步