面试题
2016-07-29 00:00
330 查看
1. 100!的结果中,末尾有几个0。 2000!末尾有几个0?
要知道有多少个0,实际就是要知道结果里面有10的多少次方
10=2*5,显然1到n里面,2的个数要远远大于5的个数
实际就是要我们找出结果里面有5得多少次方,其实也就是算算有多少个5了
1)假设最接近n的5的幂数是5的a次方这个自然数(那么接近100的也就是5的2次方=25了,a=2)
2)答案就是a*(n/5的a次方)+(a-1)*(n/5的a次方-n/5的a-1次方)+(a-2)(n/5的a-2次方-n/5的a-1次方-n/5的a次方)+........
那么问题的答案就是:
2*(100/25)+1*(100/5-100/25)=8+16=24个0
---
数学解法
10=5*2
于是,一个整数n中 因子5的个数和因子2的个数的最小值 决定了0的个数。
eg1. 100=2*2*5*5 2个零
eg2. 1200=2*2*2*2*3*5*5 2个零
又2000!中因子5的个数一定少于因子2的个数。
所以 total=[2000/(5^4)]+[2000/(5^3)]+[2000/(5^2)]+[2000/5]
=499
要知道有多少个0,实际就是要知道结果里面有10的多少次方
10=2*5,显然1到n里面,2的个数要远远大于5的个数
实际就是要我们找出结果里面有5得多少次方,其实也就是算算有多少个5了
1)假设最接近n的5的幂数是5的a次方这个自然数(那么接近100的也就是5的2次方=25了,a=2)
2)答案就是a*(n/5的a次方)+(a-1)*(n/5的a次方-n/5的a-1次方)+(a-2)(n/5的a-2次方-n/5的a-1次方-n/5的a次方)+........
那么问题的答案就是:
2*(100/25)+1*(100/5-100/25)=8+16=24个0
---
数学解法
10=5*2
于是,一个整数n中 因子5的个数和因子2的个数的最小值 决定了0的个数。
eg1. 100=2*2*5*5 2个零
eg2. 1200=2*2*2*2*3*5*5 2个零
又2000!中因子5的个数一定少于因子2的个数。
所以 total=[2000/(5^4)]+[2000/(5^3)]+[2000/(5^2)]+[2000/5]
=499
相关文章推荐
- 我的面试宝典(1):给自己定位-霍兰德职业测试
- 面试题
- 感慨万千:我参加面试的总结(含题目)
- 老码农:关于需求分析的几点体会
- 感慨万千:我参加面试的总结(含题目)
- 老码农:关于需求分析的几点体会
- 我的面试宝典(2):制作简历的原则
- 我的面试宝典(2):制作简历的原则
- 一幅画<十六芒星盾>---程序员or艺术家
- 分享一个SlideShare:《做卓有成效的程序员》
- 一个程序员的2014技术学习总结
- 分享一个SlideShare:《做卓有成效的程序员》
- 一个程序员的2014技术学习总结
- 一道关于Xib约束的面试题
- java面试题4--匿名内部类面试题
- java面试题3--成员内部类的面试题
- 机器学习面试问题4
- MySQL必知必会面试题 基础
- 如何给应聘者面试(技术面试)
- bat面试内容