博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取n!的末尾有多少个0?
阅读量:6703 次
发布时间:2019-06-25

本文共 1027 字,大约阅读时间需要 3 分钟。

hot3.png

    n!是一个乘法,根据乘法的交换律和结合律,我们可以知道,只要出现一个5,结尾必然就会有一个0,因为2的个数肯定比5多,所以每出现一个5,结尾就会多一个0.代码实现过程如下:

public class AliAlo {	public static void main(String[] args) {		AliAlo alo=new AliAlo();		System.out.println(alo.getNumberOfZero(100));	}	/**	 * 计算n!末尾有多少个0	 * @param num	 * @return	 */	public int getNumberOfZero(int n){		if(n<5){			return 0;		}		int result=0;		int closeN=getClosedN(n);		for(int i=5;i<=closeN;i+=5){			result+=getMiOfFive(i);		}		return result;	}	/**	 * 获取到最接近n的5的倍数	 * @param num	 * @return	 */	private int getClosedN(int n){		int a=n/5;		return a*5;	}		/**	 * num=Math.pow(5,result)+q  或者给定的数字是由多少个5组成	 * @param num	 * @return	 */	private int getMiOfFive(int num){		int epson=num/5;		int result=1;		while(epson>=5){			result+=1;			epson=epson/5;		}		return result;	}	/**	 * 计算n!	 * @param n	 * @return	 */	public float getNumber(int n){		float result=1;		if(n==0){			return result;		}else{			int i=n;			while(i>0){				result=result*i;				i=i-1;			}		}		return result;	}}

转载于:https://my.oschina.net/fengcunhan/blog/184404

你可能感兴趣的文章
外部链接增加nofllow
查看>>
mysql update safe model 一些问题
查看>>
Java项目开发环境构建工具 Gradle 使用笔记(简单、基本)
查看>>
Scala的模式匹配和条件类
查看>>
Scala函数与对象
查看>>
前端Jquery小结
查看>>
浅谈Java的输入输出流
查看>>
Eclipse安装SVN插件
查看>>
gradle3.1初步了解
查看>>
网易招聘笔试题+答案解析
查看>>
atoi和itoa函数的实现
查看>>
Puppet 2.7 SSH安装配置-3
查看>>
linux普通用户利用authbind绑定特权端口
查看>>
Python 建立与DB2的连接
查看>>
loadrunner http协议psot脚本
查看>>
荣新学习linux的这些天练习草稿
查看>>
CentOs安装php环境异常处理
查看>>
网络营销的精准之道专业网络营销
查看>>
推荐Linux书籍
查看>>
jquery中的replaceAll
查看>>