bte365娱乐线

n!阶乘末尾有多少个零0

发布时间 2025-07-02 13:07:46 作者 admin 阅读 4337

题目: 初阶:1*2*3*……*100 求结果末尾有多少个零。 进阶: N的阶乘末尾有多少个0

分析: 一般类似的题目都会蕴含某种规律或简便方法的阶乘末尾一个零表示一个进位,则相当于乘以10而10 是由2*5所得,在1~100当中,可以产生10的有:0 2 4 5 6 8 结尾的数字,显然2是确定的,因为4、6、8当中都含有因子2,所以都可看当是2,那么关键在于5的数量了那么该问题的实质是要求出1~100含有多少个5由特殊推广到一般的论证过程可得: 1、 每隔5个,会产生一个0,比如 5, 10 ,15,20.。。 2 、每隔 5×5 个会多产生出一个0,比如 25,50,75,100 3 、每隔 5×5×5 会多出一个0,比如125.

所以100!末尾有多少个零为:100/5+100/25=20+4=24那么1000!末尾有多少个零呢?同理得: 1000/5+1000/25+1000/125=200+40+8=248 到此,问题解决了,但我们在学习过程中应当学会发散思维、举一反三。

接着,请问N!的末尾有多少个零呢? 其实 也是同理的 N/5+N/25+…… 如计算 2009! 的末尾有多少个0:2009/5 = 401 1~2009之间有 401 个数是 5 的倍数(余数省略).401/5 = 80 1~2009 之间有 80 个数是 25 的倍数.80/5 = 16 1~2009 之间有 16 个数是 125 的倍数. 16/5 = 3 1~2009 之间有 3个数是 625 的倍数. 3/5 = 0 1~2009 之间有 0 个数是 3125 的倍数. 所以, 2009! 的末尾有 401 + 80 + 16 + 3 = 500 个0.

代码:

int CountZero(int N)

{

int ret =0;

while(N)

{

ret+=N/5;

N/=5;

}

return ret;

}

此题扩展:求扩展N!的二进制表示中最低位1中的位置。相当于求质因数的2的个数。

原理是: 假如你把1 × 2 ×3× 4 ×……×N中每一个因数分解质因数,结果就像: 1 × 2 × 3 × (2 × 2) × 5 × (2 × 3) × 7 × (2 × 2 ×2) ×……

10进制数结尾的每一个0都表示有一个因数10存在——任何进制都一样,对于一个M进制的数,让结尾多一个0就等价于乘以M。 10可以分解为2 × 5——因此只有质数2和5相乘能产生0,别的任何两个质数相乘都不能产生0,而且2,5相乘只产生一个0。 所以,分解后的整个因数式中有多少对(2, 5),结果中就有多少个0,而分解的结果中,2的个数显然是多于5的,因此,有多少个5,就有多少个(2, 5)对。 所以,讨论1000的阶乘结尾有几个0的问题,就被转换成了1到1000所有这些数的质因数分解式有多少个5的问题。

参考资料:http://www.itmian4.com/forum.php?mod=viewthread&tid=3497&extra=page=1

相关推荐

两个心的成语有哪些(比喻两人心意相通)

带有两个心的四字成语? 带有两个心字的成语有:心心相印 心心念念 心心相映 一心一意 心满意足 心灰意泠 心灰意懒 心无杂念 心猿意马 彼此

07-02 分类 super365体育官网下载

鸡排店赚钱吗 开一家鸡排店利润怎么样

一、鸡排店赚钱吗 我国鸡排产业能发展得如此迅猛,有很大一部分原因是鸡排店属于单品店,是餐饮行业中适合外扩的。因为单品往往意味着消

07-01 分类 bte365娱乐线

农行掌上银行有什么用?有哪些功能?

农业银行掌上银行的功能是非常全面的,具体如下: 【1】信用卡业务:可以通过掌上银行申请信用卡,还可以查询信用卡的账单、对信用卡还

06-27 分类 bte365娱乐线

realx是什么?realx英文是什么意思?

Realx是一家以科技为驱动,提供高效健康生活方式的公司。作为一家新兴的室内运动设备制造商,realx创造了一种全新的运动方式,让人们在家中

06-28 分类 365bet世界杯