给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。

您所在的位置:网站首页 n-13的阶乘 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。

给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。

#给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。| 来源: 网络整理| 查看: 265

这个题拿到我第一个思路是先求出阶乘的结果,然后查看该结果最后一位是否为0,具体就是先%10查看最后一位是否为0,如果是再除以10,消掉最后一位。然后循环一直至最后一位不是0,再把计数器的值返回回去。但是我立马就想到了可能溢出,所以百度了下大概13的阶乘是60多亿,而一个正整数就21亿多。所以这个方法不行。 真正可行的解法是: 因为阶乘是1*2*3*…(n-1)*n ,因为题目要求的是求出末尾有多少个0,所以当这些相乘的式子中出现2^x ,5^y(即2的x次方,5的y次方)这俩个数字时我们可以把它在多项式中分解成由多个2*2*2*5*5*5这种由多个2和多个5相乘(能这样分解是因为这个多项式全是由乘法构成的)的式子。因为每一对2和5的乘积在末尾都会多1个0,又因为能被2整除的数字肯定是多于被5整除的数字。所以这道题就化解成为那些能够被5整数的数字,最终能分解出多少个5。eg: 5=5*1 一个5 ,10=5*2 一个5,25=5*5二个5。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3