真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Lintcode2TrailingZerossolution題解

【題目描述】

創(chuàng)新互聯(lián)是專業(yè)的徐匯網(wǎng)站建設(shè)公司,徐匯接單;提供成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行徐匯網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

Write an algorithm which computes the number of trailing zeros in n factorial.

設(shè)計一個算法,計算出n階乘中尾部零的個數(shù)。

【題目鏈接】

http://www.lintcode.com/en/problem/trailing-zeros/

【題目解析】

傳統(tǒng)解法是首先求出n!,然后計算末尾0的個數(shù)。(重復(fù)÷10,直到余數(shù)非0)該解法在輸入的數(shù)字稍大時就會導(dǎo)致階乘得數(shù)溢出,不足取。

O(logn)解法:一個更聰明的解法是考慮n!的質(zhì)數(shù)因子。后綴0總是由質(zhì)因子2和質(zhì)因子5相乘得來的。如果我們可以計數(shù)2和5的個數(shù),問題就解決了。考慮下面的例子:

n = 5: 5!的質(zhì)因子中 (2 * 2 * 2 * 3 * 5)包含一個5和三個2。因而后綴0的個數(shù)是1。

n = 11: 11!的質(zhì)因子中(2^8 * 3^4 * 5^2 * 7)包含兩個5和三個2。于是后綴0的個數(shù)就是2。

我們很容易觀察到質(zhì)因子中2的個數(shù)總是大于等于5的個數(shù)。因此只要計數(shù)5的個數(shù)就可以了。那么怎樣計算n!的質(zhì)因子中所有5的個數(shù)呢?一個簡單的方法是計算floor(n/5)。例如,7!有一個5,10!有兩個5。除此之外,還有一件事情要考慮。諸如25,125之類的數(shù)字有不止一個5。例如,如果我們考慮28!,我們得到一個額外的5,并且0的總數(shù)變成了6。處理這個問題也很簡單,首先對n÷5,移除所有的單個5,然后÷25,移除額外的5,以此類推。

【參考答案】

http://www.jiuzhang.com/solutions/trailing-zeros/


新聞名稱:Lintcode2TrailingZerossolution題解
標(biāo)題URL:http://weahome.cn/article/jisgpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部