大數階乘問題,是很常見的,來看一下T公司的面試題目:
問題一:
1000的階乘末尾有多少個0?
問題二:
1000的階乘有多少位數?
問題三:
1000的階乘的值是多少?
1000的階乘末尾有多少個0?直接遞歸計算嗎?有點天真了。1000的階乘,是一個非常大的數字,得想其它辦法了。注意:要求的是1000的階乘末尾的0的個數,而不是求1000的階乘。
喜歡編程的小夥伴可以加小編的Q群1026782549,進群可以領取免費的學習資料跟源代碼哦!也可以關注小編的編程雯子,領取資料哦
很顯然,從分解質因數的過程來看,結尾的0必然是2和5的乘積,而且在階乘中,5是稀缺值,而2是富餘值,所以,隻需要知道質因數中5的個數就行了。我們以26的階乘為例:
可見:其中有6個5,有充足的2,所以隻需要看5的個數。易知,26的階乘的末尾有6個0. 用階乘計算器來看下,果然如此:
我們來讨論更一般的情況:
設f(x)是x中因數5的個數, [x]為x向下取整的值,則有:
所以:
至于程序,給個遞歸版本吧:
結果:249. 可見,1000的階乘末尾有249個0.
喜歡編程的小夥伴可以加小編的Q群1026782549,進群可以領取免費的學習資料跟源代碼哦!也可以關注小編的編程雯子,領取資料哦
1000的階乘有多少位數?直接遞歸計算嗎?有點天真了。我們來看下如下規律:
設f(x)為x的數位個數,[x]為x向下取整的值,則有:
至于程序,那就很簡單了:
結果:2568. 可見,1000的階乘有2568位。
1000的階乘的值是多少?直接遞歸計算嗎?有點天真了。 還是用字符串來做吧:
結果是:
可以看到,1000的階乘有2568位,且最後有249個0.
喜歡編程的小夥伴可以加小編的Q群1026782549,進群可以領取免費的學習資料跟源代碼哦!也可以關注小編的編程雯子,領取資料哦
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!