算法——阶乘中含有几个0
来源:互联网 发布:sql为表创建外键约束 编辑:程序博客网 时间:2024/06/06 12:05
题目:给定一个整数N,那么N的阶乘末尾有多少个0。
思路:如果N!= k * 10^m ,且k不能被10整除,那么N!的末尾有m个0,再考虑对N!进行质因数分解,N!=(2^x)*(3^y)*(5^z)....,因为10 = 2 * 5,所以M只跟X和Z相关,每一对2 和5 相乘可以得到一个10,于是 M = min(x,z),x大于等于z,因为能被2除尽的数比5度,故只要算出能被5除尽的数的个数即可。
解法1:
private static int num(int k){int n=0;while(k!=0){n+=k/5;k/=5;}return n;}
公式 Z = [ N / 5 ] + [ N / 5 ^2 ] + [ N / 5 ^3 ] +....《总存在一个K使得, 5 ^ k > N ,[ N / 5 ^ k ] = 0 》,公式中5贡献一个5,5^2共献两个5.以此类推。
解法2:
private static int n(int k){int r=0;for(int i=1;i<=k;i++){int j = i;while(j % 5==0){r++;j = j/5;}}return r;}
计算i(i=1,2.。。。N)的因式分解中5的指数,后求和。
0 0
- 算法——阶乘中含有几个0
- 阶乘因式分解(找出数n的阶乘中含有几个素数m)
- 初学算法——阶乘
- 算法系列—计算阶乘
- 求N!(N的阶乘) 中最后有几个0
- N的阶乘中末尾有几个0
- N的阶乘中末尾有几个0
- N的阶乘中末尾有几个0
- 寒假集训附加题目题解报告(3)——阶乘的0有几个?
- 贪心算法——阶乘之和
- 算法——因子和阶乘
- 某个数的阶乘尾部含有0的数
- n的阶乘尾数有几个0
- 编程之美--N的阶乘中末尾有几个0
- HDU1124 一个数的阶乘的结果中包含 几个 0
- 阶乘统计0个数 算法
- 1000!(1000的阶乘)中有几个2-----三个数组
- 递归算法示例——计算N的阶乘
- echarts直角图形的x轴坐标的标签添加click事件
- L脚本语言语法手册0.14版
- Setting property 'source' to 'org.eclipse.jst.jee.server: ' did not find a matching property
- CSS 超出长度省略
- PXE安装RHEL6
- 算法——阶乘中含有几个0
- Hust oj 2060 截取方案数(KMP)
- UVA 455 Periodic Strings (KMP && 暴力数组)
- 2016.9.3测试解题报告(NOIP2014 day1 day2)
- Android启动流程
- JS时间格式化
- java.lang.IllegalMonitorStateException
- Java设计模式之外观模式
- thinkphp5 nginx 虚拟站点配置