首页
题库
面试
求职
学习
竞赛
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
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收藏
15095浏览
热门推荐
相关试题
普通PC机器上四字节有符号整数能表...
谷歌
编程基础
评论(3)
多少个点位于同一直线
穷举
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
golang工程师
评论(317)
来自牛客考试系统测试卷
运行下面这段C语言程序之后,输出在...
谷歌
C++
C语言
评论(67)
在一个运算放大器电路中,如果非反相...
模拟电路
评论(1)
以下代码中,`ptrdiff_t`...
C语言
评论(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
刷真题、补算法、看面经、得内推
使用第三方账号直接登录使用吧:
更多
扫一扫,把题目装进口袋
求职之前,先上牛客
扫描二维码,进入QQ群
扫描二维码,关注牛客公众号
关于我们
加入我们
意见反馈
企业服务
校企合作
联系我们
免责声明
友情链接
公司地址:北京市朝阳区北苑路北美国际商务中心K1座一层-北京牛客科技有限公司
联系方式:010-60728802
投诉举报电话:010-57596212(朝阳人力社保局)
牛客科技© All rights reserved
admin@nowcoder.com
京ICP备14055008号-4
增值电信业务经营许可证
营业执照
人力资源服务许可证
京公网安备
11010502036488号