172. Factorial Trailing Zeroes
生活随笔
收集整理的這篇文章主要介紹了
172. Factorial Trailing Zeroes
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/**172. Factorial Trailing Zeroes *2016-6-4 by Mingyang* 首先別忘了什么是factorial,就是階乘。那么很容易想到需要統計* (2,5)對的個數,因為2×5=10。但是這個條件放松一下就會發現其實只要數5的個數就好了,* 因為2實在是比5要多的多。那么這道題目就轉化成為計算從1到n之間所有數的5的約數個數總和。* 很簡單的想到能不能用n/5得到。比如當n為19的時候,19/5 = 3.8,那么就是有3個約數包含5的數,分別是5, 10,* 15。但是有的數可能被5整除多次,比如說25。 這樣的數一個就能給最后的factorial貢獻好幾個5。* 最后的解法就是對n/5+n/25+n/125+…+進行求和,當n小于分母的時候,停止。分母依次為5^1, 5^2, 5^2…* 這樣的話在計算5^2的時候,能被25整除的數里面的兩個5,其中一個已經在5^1中計算過了。所以5^2直接加到count上。*/public static int trailingZeroes(int n) {if ( n<0 ) return -1;int count = 0;for (long i=5; n/i>=1; i*=5) {count += n / i;} return count;}
?
轉載于:https://www.cnblogs.com/zmyvszk/p/5560034.html
總結
以上是生活随笔為你收集整理的172. Factorial Trailing Zeroes的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于江苏卫视《为她而战》的,楼主要急死了
- 下一篇: 牙髓炎做根管治疗要多少钱