关于面试题常见的阶乘计算多少个0最快速解法,列如搜狐的2015的阶乘,99的阶乘多少个0

这个面试问题基本偶尔会问到,java开发面试时候会问到,机器学习时候也问到过。解法其实很简单

一.入门题:99的阶乘多少个零?

答:因为2足够多,我们根本不用看2有多少个(2、4、6.....比5多的多),故看因子5的个数。5的倍数的数有19个(5,10,15,……95),其中25的倍数有3个(这个因子有两5,比5因子要多一个数5),所以共有5的因子一共22个。100的阶乘结果后面有22个0。

这是非常好理解的。

二.拔高题:2015!阶乘多少个0

答案:(从上思路)

计算1到2015里多少个5,25,125,625
1、2015÷5=403
2、2015÷25=80.6取整得80
3、2015÷125=16.12取整得16
4、2015÷625=3.224取整得3
 
 
答案是:403+80+16+3=502

WHY?解答一下为啥加起来就行了:一个5的因子有403个0,;25的因子有80个(包括2个5,比因子5多一个);125的因子包括16个(3个5,扔掉5包含的、25包含的个数、多了一个5);625的因子包括了4个5,(丢掉5/25/125的包含个数多了一个5)。所以,

403+80+16+3=502
三、扩展题:1.2015!/2000!

答:(2000!)*2001*....2015/2000!,也就是2001*....2015,3个5,3个0

2.2015!-2000!

答:0个,大家自己想就行了。


这四个题目是常见的面试题,基本不会有别的面试方法了。

猜你喜欢

转载自blog.csdn.net/xinjieyuan/article/details/80094727