当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

1024! 末尾有多少个0?

发表于: 2012-03-23   作者:bylijinnan   来源:转载   浏览次数:
摘要: public class CountZerosInFactorial { /** * 题目:1024! 末尾有多少个0? * 参看《编程之美》 * 解答: 末尾0的个数取决于乘法中因子2和5的个数。显然乘法中因子2的个数大于5的个数,所以我们只需统计因子5的个数。 是5的倍数的数有: 1024 / 5 = 204个 是25的倍数的数有:1024

public class CountZerosInFactorial {

	/**
	 * 题目: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
	 */
	public static void main(String[] args) {
		int tmp=countZerosInFactorial(1024);
		System.out.println(tmp);
	}

	public static int countZerosInFactorial(int n){
		if(n<5){
			return -1;
		}
		int count=0;
		while(n>0){
			count+=n/5;
			n/=5;
		}
		return count;
	}
}


1024! 末尾有多少个0?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
[转] http://www.matrix67.com/blog/archives/3985 大家或许还记得 Quake III 里面的一段有如天书般
憋屈地看了一个星期的论文,实在是没一点意思。为了娱乐一下自己,兼受同学启发,我决定用python写一
来自独立网络分析公司 StatCounter的最新统计数据显示,从2012年3月开始,1366×768已经成为世界范围
#include <cstdio> #include <algorithm> #define FI(a, b, c) for(int a = (b); a <
/*(3‐1)输入一行字符,统计其中有多少个单词。每两个单词之间以空格(可能多个)隔 开,或者由标
同一段代码,在测试机上运行成功,但在用户机上运行失败,并报错:无法将类型为GeoProcessorClass的
System.Runtime.InteropServices.COMException (0x80040154): 没有注册类别 (异常 2.注册ActiveX控
今天 CB 上看到新闻,某人在 Vista 下开 108 个窗口。我也想试一试我的 Ubuntu 8.04 能够开多少个。
第三章 所有成功的企业都是不同的 ----科技企业的创新就是为了垄断,成功的科技企业都是垄断式的。
Context.GetObjectByKey 出错 错误提示:System.Data.Metadata.Edm.MetadataWorkspace.ImplicitLoadF
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号