当前位置:
首页 >
【经典智力题】1024! 末尾有多少个0?——“计算阶乘末尾0的数量”问题引出
发布时间:2024/1/1
56
豆豆
生活随笔
收集整理的这篇文章主要介绍了
【经典智力题】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采集卡安装操作说明