2. 尾部的零
題目
設計一個算法,計算出n階乘中尾部零的個數
樣例11! = 39916800,因此應該返回 2
?
題解
一開始就用最簡單對1-n找出5的個數,然后超時了。
雖然都直到是要找5,因為2肯定比5多,所以5的個數就是0的個數,只是計算方法得簡單明了。
既然1-n里5的個數就是0,我們就看看規律。
5 10 15 。。。n 那n/5不就是n內有5因子的數量嗎?沒錯 count += n/ 5
但里面有25,50這種有2個5因子的, count += n/25 ,如此類推 count += n / 5**x 直到5**x > count
上面寫法只是反著來,原理是一樣的。
?
def trailingZeros(n):count = 0while n > 5:count += n / 5n = n / 5return count
?
轉載于:https://www.cnblogs.com/usp10/p/8611759.html
總結
- 上一篇: 雪花飞满天是什么歌呢?
- 下一篇: 求浪客剑心真人版三部曲超清超清超清谢谢