首页
题库
面试
求职
学习
竞赛
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
数字(100!)后面有____个0。
[单选题]
数字(100!)后面有____个0。
18
20
24
28
30
100
查看答案及解析
添加笔记
邀请回答
收藏(8)
分享
纠错
12个回答
添加回答
2
推荐
disibutatian
在leetcode上遇到,主
查看全部
编辑于 2015-06-19 17:06:35
回复(1)
2
小菜一枚
末尾有多少0看的就是乘积中有多少个10,由于间隔就为偶数,所以直接看为5的倍数有多少个,分别为
5,10,15,20,25(2个),30,35,40,45,50(2个),55,60,65,70,75(2个),80,85,90,95,100(2个),所以共24个
发表于 2015-06-16 17:23:19
回复(0)
2
SunburstRun
答案是C
中心思想其实不复杂,就是1到100里面每一个数,如果它的因数是5,那么末尾就多一个0
因为如果是5无论如何它都会被乘以2或4或6或8变成0
比如 5 算一个
25 为 5*5 算 2个//可以通俗看出 25的倍数都是2个
然后这样算下去,也可以写代码求出来
最后是 算 5 10 15 20 25 30 35 40 45 50 55......
个数是 1 1 1 1 2 1 1 1 1 2 1
最后加起来是 24个,也经过程序验证,毫无疑问,记得有一年google的题目就是求1024!尾数为0的个数,原理一样。
当然 如果你还不理解 最最最通俗就是 1到100有20个5,其中有4个是25.。。
所以 20+4=24 so easy.
编辑于 2015-06-16 14:14:54
回复(0)
1
得得小泽
24 看5和5的幂
发表于 2015-06-17 09:51:43
回复(0)
1
牛客304487号
选C
乘积末尾是0,则有以下情况:
1.数字本身有0;
2.质因数中含有2和5的个数(1-100中由于质因数2的个数远多于5的个数,故其实只考虑质因数包含5的数字个数);
3.质因数中包含多个5的情况。
综上所述:
1.首先可以很容易的获得1-100中末尾包含的0的个数共11个(其中100有2个0);
2.末尾不为0且质因数包含5的数字个数共10个,包括5、15、25...95;
3.由于25、50、75(100由于两个0都贡献出来相当于1)都含有两个5,所以这部分的个数为3。
所以100!末尾0的个数为11+10+3=24个
发表于 2015-06-16 11:11:22
回复(0)
0
放作夥
我比较笨,我是这样理解的,尾巴的0都是由10累积出来的,而10只能分解成2和5。换言之,2和5配对出10出来,从而对尾巴的0有贡献。而100!因式分解能提供充足的2,所以瓶颈就在于5。所以要看有多少个5。贡献两个5的数有25,50,75,100,加上20个只能提供一个5的数。20+4=24
发表于 2015-07-09 22:23:24
回复(0)
0
ABCD
就是一共有多少个10,10可以分解成2*5,那么就是看一共有多少对(2,5)
每一个偶数都有2,有50个2,然后有的偶数还有多个2:
4-2,8-3,12-2,16-4,20-2,24-3,28-2,32-5,36-2,40-3,44-2,48-4,52-2,56-3,60-2,64-6,68-2,72-3,76-2,80-4,84-2,88-3,92-2,96-5,100-2,那么一共有2+3+2+4+2+3+2+5+2+3+2+4+2+3+2+6+2+3+2+4+2+3+2+5+2+50-25=97个2
一共有5:
5-1,10-1,15-1,20-1,25-2,30-1,35-1,40-1,45-1,50-2,55-1,60-1,65-1,70-1,75-2,80-1,85-1,90-1,95-1,100-2
一共有20+4=24个5
所以100!的后面有24个0
发表于 2015-06-18 17:53:03
回复(0)
0
万QQ
答案:C(24)
解释:
给定一个整数N,求其N!中末尾0的个数可以转化为 N! = K×10^M ——> N!
= (2^x) × (3^y) × (5^z),在此有两种办法,分别为
//方法1:
计算z,直接计算1~N的因式分解中5的指数(因为能被5整除的概率小于被2整除的概率,所以选z),然后求和 //方法2:z =
[N/5] + [N/5^2] + [N/5^3] +
...;[N/5]表示不大于N的数中5的倍数贡献一个5,[N/5^2]表示不大于N的数中5^2的倍数贡献一个5 所以,结果
= 100/5 + 100/25 = 24;
发表于 2015-06-18 09:23:56
回复(1)
0
徐
将所有5的倍数和4相乘,然后用while循环除十取余
public static void main(String[] args) {
double sum=1;
int count=0;
for(int i=1;i<=20;i++){
sum=sum*5*i*4;
while(sum%10==0){
sum=sum/10;
count++;
}
}
System.out.println(count);
}
发表于 2015-06-17 11:21:18
回复(2)
0
牛二鹏
import java.math.BigDecimal;
public class Test100 {
public static void main(String[] args) {
//由于100!结果太大,只能用BigDecimal
BigDecimal result= BigDecimal.valueOf(1);
for(int i=1;i<=100;i++){
result=result.multiply(BigDecimal.valueOf(i));
}
System.out.println(result);//输出结果以待验证
int len=result.toString().length();//将结果转为字符串,并取得长度
String str=result.toString();//结果转为字符串来操作
//循环从字符串的最后一个来,直到不是零为止,循环了几次就有几个零
for(int j=0;j if(!(str.charAt(len-1-j)=='0')){ System.out.println(j); return; } } } } 发表于 2015-06-17 09:23:36 回复(1) 0 夏雨天 选择C。 要求阶乘后的结果中有多少0。而相乘可以出现末尾数字为0 的情况只有这两个数的质数包含2和5的情况。在1~100中,只要是偶数他的因数都包含2,而因数包含5的就是5的倍数。而25,50,75都包含两个因数5.1~100中5的倍数有19个,加上25,50,75多的一个,在加上100中的两个,所以一共19+3+2=24个0. 发表于 2015-06-16 23:06:50 回复(0) 0 贝类 有几个0就是看有几个5,而25,50,75,100这都是有两个0,剩下的都是含有5的个数有16个,所以就有24个0 发表于 2015-06-16 22:02:43 回复(0) 这道题你会答吗?花几分钟告诉大家答案吧! 提交观点 问题信息 查找 上传者:陈木木 难度: 12条回答 8收藏 12237浏览 热门推荐 相关试题 请画出在包含 14 个结点的二项堆... 高级算法 评论(1) 如图 1 表示使用快表(页表)的虚... 编程基础 评论(1) 对于我们来说,谁是好的顾客? 销售常识 评论(1) 小红书用户在不同使用场景下,对内容... 需求分析 评论(1) 订单表order_table全部记... 查找 数据库 数据分析 SQL 评论(1) 扫描二维码,关注牛客网 意见反馈 下载牛客APP,随时随地刷题 刷真题、补算法、看面经、得内推 使用第三方账号直接登录使用吧: 更多 扫一扫,把题目装进口袋 求职之前,先上牛客 扫描二维码,进入QQ群 扫描二维码,关注牛客公众号 关于我们 加入我们 意见反馈 企业服务 校企合作 联系我们 免责声明 友情链接 公司地址:北京市朝阳区北苑路北美国际商务中心K1座一层-北京牛客科技有限公司 联系方式:010-60728802 投诉举报电话:010-57596212(朝阳人力社保局) 牛客科技© All rights reserved admin@nowcoder.com 京ICP备14055008号-4 增值电信业务经营许可证 营业执照 人力资源服务许可证 京公网安备 11010502036488号