摘要: 题目:求N!末尾有多少个0方案一:暴力法。分析:这很容易造成溢出得到错误的结果,并且运算的时间也较长。若是面试的时候你这样解,那么可以say goodbye了。方案二:其实没有必要求出最后的结果再去数究竟有多少个0。 我们可对一个数进行分解,分解成尽可能小的数字相乘的形式(其实也就是尽可能小的素数相乘),你会发现0只会来源于2*5。所以我们可以看看有多少个2和5成对出现。 而在阶乘之中,显而易见2的个数一定是多于5的个数,所以我们就看看出现了多少个5。 以1234!为例,末尾为5的数有1234/5 = 246个,但这246个数中其实还有包含5存在的数(因为会包含25,125这种除以5之后,还. 阅读全文
posted @ 2013-10-07 10:10 欧麦高德 阅读(503) 评论(0) 推荐(0) 编辑