172. Factorial Trailing Zeroes

Given an integer n, return the number of trailing zeroes in n!.

這是一道數學題,把N!寫成乘數。那么零的產生是因為2*5而來的,因為每隔一個五,肯定有不止一個2,你可以考慮一下5-25之間有幾個數是2的倍數。那么我們只用考慮N!中五的個數,每次有一個5,就會有1個0,同理,當有25時,會產生兩個0,由于我們在計算五的個數時已經計算了一次5了,所以25的時候還要再多一次。
簡單的說,公式是:
N/5+N/25+N/125+N/625+...直到除的結果是0。

class Solution {
    public int trailingZeroes(int n) {
       int count = 0;
        while(n>0)
        {
            count+=n/5;
            n=n/5;
        }
        return count ;
    
    }
   
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容