當(dāng)前位置:
首頁(yè) >
2. 尾部的零
發(fā)布時(shí)間:2023/11/27
45
豆豆
題目
設(shè)計(jì)一個(gè)算法,計(jì)算出n階乘中尾部零的個(gè)數(shù)
樣例11! = 39916800,因此應(yīng)該返回 2
?
題解
一開始就用最簡(jiǎn)單對(duì)1-n找出5的個(gè)數(shù),然后超時(shí)了。
雖然都直到是要找5,因?yàn)?肯定比5多,所以5的個(gè)數(shù)就是0的個(gè)數(shù),只是計(jì)算方法得簡(jiǎn)單明了。
既然1-n里5的個(gè)數(shù)就是0,我們就看看規(guī)律。
5 10 15 。。。n 那n/5不就是n內(nèi)有5因子的數(shù)量嗎?沒錯(cuò) count += n/ 5
但里面有25,50這種有2個(gè)5因子的, count += n/25 ,如此類推 count += n / 5**x 直到5**x > count
上面寫法只是反著來(lái),原理是一樣的。
?
def trailingZeros(n):count = 0while n > 5:count += n / 5n = n / 5return count
?
轉(zhuǎn)載于:https://www.cnblogs.com/usp10/p/8611759.html
總結(jié)
- 上一篇: 雪花飞满天是什么歌呢?
- 下一篇: 团体程序设计天梯赛-练习集-L1-044