package com.zhonghaiwangluokeji.interview;
/**
* 求N!的阶乘的结果的末尾有多少个连续的0
* @author yangjianzhou
* 实现原理:这个阶乘分解因式后有多少个5,例如25=5*5.
* 任何一个偶数与5的乘积的结果个位一定为0
*
*/
public class Problem2 {
public static void main(String[] args) {
System.out.println(countZeros(1000));
System.out.println(zeroCount(1000));
}
/**
* 网上例子
* @param n
* @return
*/
static int zeroCount ( int n) {
int counter = 0;
for( int i = 5,m; i <= n; i += 5) {
m = i;
while ( m % 5 == 0) {
counter++;
m /= 5;
}
}
return counter;
}
/**
* 自己实现
* @param n
* @return
*/
public static int countZeros(int n){
int start = 5;
int count = 0;
int temp;
while(start<=n){
temp = start;
while(temp%5==0){
temp = temp/5;
count ++;
}
start = start+5;
}
return count;
}
}
运算结果:
249
249
分享到:
相关推荐
NULL 博文链接:https://z-jls03.iteye.com/blog/830994
C++版本计算n阶乘末尾0的个数原理讲解及代码实现
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!...
此外,文档还包括一个逐步指南,介绍如何在Java中实现递归阶乘的代码,包括详细的代码示例和实现细节。 文档还涵盖了高级主题,如如何优化代码以提高性能以及如何处理大的阶乘。该资源包括实用练习,让读者可以练习...
java 求任意一个正数的阶乘 java 求任意一个正数的阶乘
该资源提供了一份全面的指南,介绍了如何在Java中计算阶乘之和。文档中涵盖了阶乘的基本概念,包括如何计算阶乘以及如何计算阶乘之和并将其存储在变量中。此外,文档还包括一个逐步指南,介绍如何在Java中实现代码,...
java源代码--实现阶乘的计算。。。。。。。。。。。。。
java阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘
阶乘连续零的个数,很短的几行代码
C语言实现N的阶乘的算法
java代码-解决求阶乘的问题java源代码 ——学习参考资料:仅用于个人学习使用
题解:求n的阶乘末尾0的数量。因为n的阶乘容易爆整数范围,所以普通算法不合适。用高精度容易超时,这里直接给出数学求解过程
算法-求10000以内n的阶乘(信息学奥赛一本通-T1172)(包含源程序).rar
计算N!:编写计算N阶乘的程序,数值N由键盘输入,N的值要在0到65536之间(用一个16位的字表示),结果在显示器上显示。
求n!输出1-N的阶乘.c语言,一个.cpp文件
java代码-使用java解决递归阶乘的源代码
Java 实例 - 阶乘源代码-详细教程.zip
算法-阶乘和(信息学奥赛一本通-T1173)(包含源程序).rar
递归算法求阶乘.rar 递归算法求阶乘.rar 递归算法求阶乘.rar 递归算法求阶乘.rar 递归算法求阶乘.rar 递归算法求阶乘.rar
输入一个数n后,把n!这个数分解后可见,只有出现2 * 5时0的个数才会增加,而2的个数是大于5的,所以可用循环将n!一直除以5以判断5的个数,再将其输出即可。该方法较为简易,欢迎指正