本文主要是介绍求1*2*3*......*100的积中末尾有几个0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从1到10,连续10个整数相乘:
刚好两个0?会不会再多几个呢?
如果不相信,可以把乘积计算出来,结果得到
原式=3628800。你看,乘积的末尾刚好两个0,想多1个也没有。
把规模再扩大一点,从1乘到30: 1×2×3×4×…×29×30。现在乘积的末尾共有几个0?
很明显,至少有6个0。你看,从1到30,这里面的5、10、15、20、25和30都是5的倍数。从它们每个数可以得到1个0;它们共有6个数,可以得到6个0。
很明显,至少有6个0。你看,从1到30,这里面的5、10、15、20、25和30都是5的倍数。从它们每个数可以得到1个0;它们共有6个数,可以得到6个0。
刚好6个0?会不会再多一些呢?
能多不能多,全看质因数5的个数。25是5的平方,含有两个质因数5,这里多出1个5来。从1乘到30,虽然30个因数中只有6个是5的倍数,但是却含有7个质因数5。所以乘积的末尾共有7个0。
乘到30的会做了,无论多大范围的也就会做了。
能多不能多,全看质因数5的个数。25是5的平方,含有两个质因数5,这里多出1个5来。从1乘到30,虽然30个因数中只有6个是5的倍数,但是却含有7个质因数5。所以乘积的末尾共有7个0。
乘到30的会做了,无论多大范围的也就会做了。
例如,这次乘多一些,从1乘到100: 1×2×3×4×…×99×100。现在的乘积末尾共有多少个0?答案是24个。
[解法一]:
[100/5]+[100/5^2]+[100/5^3]+……=24
所以1*2*3*......*100的积中末尾有24个连续的0
其中[x]读作高斯x,表示不大于x的最大整数。
如[1.2]=1 [5]=5 [-1.5]=-2
要求x!末尾有多少个连续的0,公式是 [x/5]+[x/5^2]+[x/5^3]+[x/5^4]+[x/5^5]+……
所以1*2*3*......*100的积中末尾有24个连续的0
其中[x]读作高斯x,表示不大于x的最大整数。
如[1.2]=1
要求x!末尾有多少个连续的0,公式是
[解法二]:
将原式分解质因数,也就是说将它写成完全由质因数乘积的形式,如果要形成0(或者10)则要看这个质因数乘积的式子中2和5的对数,因为一对形成一个零嘛。可以很直观的看出来2的个数是明显多于5的,所以只要看5的个数就行了,式子中能分解出5的数有:
5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100
而通过分解质因数对应得到5的个数分别是:
1、 1、 1、 1、 2、 1、 1、 1、 1、 2、 1、 1、 1、 1、 2、 1、1、 1、 1、 2
总共有24个,所以总共会形成24个0
5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100
而通过分解质因数对应得到5的个数分别是:
1、 1、 1、 1、 2、 1、 1、 1、 1、 2、 1、 1、 1、 1、 2、 1、
总共有24个,所以总共会形成24个0
这篇关于求1*2*3*......*100的积中末尾有几个0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!