首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
N!表示 1*2*…*N。求 1024!的末尾有多少个0?
[单选题]
N!表示 1*2*…*N。求 1024!的末尾有多少个0?比如10!=3628800末尾有两个0。
113
253
1023
1024
添加笔记
求解答(0)
邀请回答
收藏(14)
分享
纠错
5个回答
添加回答
2
StrongYoung
1024/5=204; 204/5=40; 40/5=8; 8/5=1; 1/5=0; 204+40+8+1=253
发表于 2015-07-20 09:20:56
回复(0)
0
岚啊哪
253
发表于 2015-08-15 21:06:39
回复(0)
0
你正年轻
将1024!看做是一个很长的乘式。根据乘法的结合律,找出所有小于1024的数中相乘结果末尾为0的因子。可以想到末尾为0的数与其他数相乘、5的倍数与2的倍数相乘,都会得到末尾为0的数。进一步想末尾为0的数包含在5的倍数中。所以只要找出所有5的倍数与2的倍数相乘就能得到0。然而明显2的倍数是远远大于5的倍数的。所以只要找出长乘式中的所有5的个数就能解决问题。
再次,5的倍数乘2的倍数可以至少得到末尾为1个0的数。如15*2=30。但是5的n次方,包含n个5,可得到末尾为更多0的数。如25*4=5*5*4=100。125*8=5*5*5*8=1000。
25与4的倍数相乘会得到2个0,但25的倍数也是5的倍数,其中一半已经在5的倍数中了,只要计算25的倍数的个数即可
。
综上。1024!中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。
发表于 2015-05-21 19:19:57
回复(0)
0
幻世魔灵
void main()
{
int i,cntA,cntB,num,tnum;
while(1)
{
printf("请输入你需要用于阶乘的N:\n");
scanf("%d",&i);
cntA = 0;
cntB = 0;
for(num=1;num<=i;num++)
{
tnum = num;
while(tnum%2==0)
{
cntA++;
tnum = tnum/2;
}
tnum = num;
while(tnum%5==0)
{
cntB++;
tnum = tnum/5;
}
}
if(cntA > cntB)
{
cntA = cntB;
}
printf("共有0个数:%d\n",cntA);
}
}
输入1024
结果为253
复制
去Google翻译
翻译结果
发表于 2015-04-13 21:35:03
回复(0)
0
sharp
B 2 * 5 = 10 贡献一个0 将1024!写成质因数相乘 就是看 2 与 5 的个数(明显2的个数大于5)
发表于 2014-10-18 16:53:33
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
谷歌
穷举
上传者:
A-Winter
难度:
5条回答
14收藏
14425浏览
热门推荐
相关试题
多少个点位于同一直线
穷举
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
golang工程师
评论
(316)
来自
牛客考试系统测试卷
按照OSI模型的层次概念,下列几个...
谷歌
网络基础
评论
(5)
来自
Google2012笔试卷
给出一个函数来输出一个字符串的所有排列。
微软
链表
穷举
组合数学
评论
(4)
有关linux线程的描述,正确的是...
京东
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
对于小红书,创作者和粉丝之间互相不...
需求分析
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题