日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

100阶乘末尾有多少个零

發布時間:2024/1/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 100阶乘末尾有多少个零 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

100! = 1 * 2 * 3 * ... * 99 * 100

如果結尾要有0,必然是有兩個數字相乘進位了,而10 = 2 * 5,所以一個數字末尾有多少個0,取決于它分解因子后,有多少個2和有多少個5,假設2的個數為m5的個數為n,那么最終的結果為min(m,n),而根據實際情況,當數字大于10且末尾有0的時候,顯然2的個數必然大于等于5的個數,所以最終的結果取決于因子5的個數,也就是說,一個數字末尾0的個數取決于其分解因子之后5的個數,前提是它必然有0,用f(n)來表示數n末尾0的個數,即包含的因子5的個數,則100!末尾0的個數就可以表示為f(100!) = f(100) + f(99) + f(98) + ... + f(2) + f(1),其中

100末尾有20,即有2個因子5f(100) = 2,

99末尾沒有0,也沒有因子5,即f(98) = 0

...

95末尾沒有0,有因子5一個,即f(95) = 1

...

5末尾沒有0,有因子5一個,即f(5) = 1

...

F(100!) = f(100) + f(99) + f(98) + ... + f(2) + f(1) = 2 + 20 + 1 + 1 = 24

此處進一步討論任意一個數n,其含有的因子5的個數,

int f(int n) {int ret = 0;while(n){if(0 == n % 5){n /= 5;++ret;}else{break;}}return ret; }

現在進一步問N!末尾有幾個0

int g(int n) {if(n < 5){return 0;}int sum = 0;for(int i = 1; i <= n; ++i){sum += f(i);}return sum; }

?

轉載于:https://www.cnblogs.com/seeken/p/5653487.html

總結

以上是生活随笔為你收集整理的100阶乘末尾有多少个零的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。