【Leetcode - 172】阶乘后的零(思维)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【Leetcode - 172】阶乘后的零(思维)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                給定一個整數 n ,返回 n! 結果中尾隨零的數量。
提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
示例 1:
輸入:n = 3
 輸出:0
 解釋:3! = 6 ,不含尾隨 0
 示例 2:
輸入:n = 5
 輸出:1
 解釋:5! = 120 ,有一個尾隨 0
 示例 3:
輸入:n = 0
 輸出:0
 ?
提示:
0 <= n <= 104
 ?
進階:你可以設計并實現對數時間復雜度的算法來解決此問題嗎?
來源:力扣(LeetCode)
 鏈接:https://leetcode-cn.com/problems/factorial-trailing-zeroes
 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
解題報告:
藍橋老題了。
先轉化成,求n!里有幾個2和幾個5。下面拿5舉例:
再轉化成,這n個數里有幾個數有1個5(即n/5),這n個數里有幾個數有2個5(即n/25),等等、
所以做法就是這樣了。
AC代碼:
class Solution { public:int trailingZeroes(int n) {int x = 5, c2 = 0, c5 = 0;while(n/x >0) {c5 += n/x;x*=5;} x=2;while(n/x>0) {c2 += n/x;x*=2;}return min(c2, c5);} };總結
以上是生活随笔為你收集整理的【Leetcode - 172】阶乘后的零(思维)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 最近十年,我国人均GDP增速是美国的四倍
- 下一篇: 基金经理谢家乐怎么样?基金经理谢家乐有哪
