【经典智力题】1024! 末尾有多少个0?——“计算阶乘末尾0的数量”问题引出
生活随笔
收集整理的這篇文章主要介紹了
【经典智力题】1024! 末尾有多少个0?——“计算阶乘末尾0的数量”问题引出
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上有這樣一個廣為流傳的有趣問題:
1024! 末尾有多少個0?
相應的解法是:
末尾0的個數取決于乘法中因子2和5的個數。顯然乘法中因子2的個數大于5的個數,所以我們只需統計因子5的個數。
是5的倍數的數有: 1024 / 5 = 204個
是25的倍數的數有:1024 / 25 = 40個
是125的倍數的數有:1024 / 125 = 8個
是625的倍數的數有:1024 / 625 = 1個
所以1024! 中總共有204+40+8+1=253個因子5。
也就是說1024! 末尾有253個0。
int countZeros( int n ){int num = 0;while( n > 5 ){n = ( n - (n%5) ) / 5;num += n;}return num; }
我又自己做了一下這道題目,一遍AC,貼代碼留念。
AC代碼如下:
#include <iostream>using namespace std;int countZeros( int n ){int num = 0;while( n >= 5 ){n /= 5;num += n;}return num; }int main() {int n;while( cin>>n ){while( n-- ){int m;cin>>m;cout<<countZeros(m)<<endl;}}return 0; }
總結
以上是生活随笔為你收集整理的【经典智力题】1024! 末尾有多少个0?——“计算阶乘末尾0的数量”问题引出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习中的数学——牛顿迭代法(Newt
- 下一篇: 迈创CoaXPress采集卡安装操作说明