1×2×3×4……×50的积有多少个0

来源:百度知道 编辑:UC知道 时间:2024/04/29 01:22:00

10,20,30,40,50,5,15,25,35,45都会产生0的。
所以应该有10个0

2*5=10
0的个数,由有多少个2和5决定。
在连续的自然数中,2的个数远多于5的个数。
所以50!里有多少个5,就有多少个0。

每5个数里就有1个5的因子。每25个数里就有1个25的因子。
其中25=5*5,5已经给每5个数里就有1个5的因子计算过了,所以1个25的因子只多了1个5。

50!,一起就有50/5+50/25=10+2=12个5。
50!的末尾有12个连续的0。

*5=10
0的个数,由有多少个2和5决定。
在连续的自然数中,2的个数远多于5的个数。
所以50!里有多少个5,就有多少个0。

每5个数里就有1个5的因子。每25个数里就有1个25的因子。
其中25=5*5,5已经给每5个数里就有1个5的因子计算过了,所以1个25的因子只多了1个5。

50!,一起就有50/5+50/25=10+2=12个5。
50!的末尾有12个连续的0。
.5、12.15、22.25、32.35、42.45、10、20.(个位为5的数)、30、40、50.(个位为4或2或6或8的数)
这几组数相乘,个位为0
其中20.(个位为5的数)、50.(个位为2、4、6、8的数)这两组个位有两个0
可得
1乘2乘3乘4乘5............乘50的积末尾连续有12个零

用C语言编程
n=1

for( i=1;i<=50;i++)

n=n*i;

如果不考虑数据类型的取值范围,就是这么简单的事情,可是在c里面int -32768~32767

但是如果我用的是double的话是没有办法完整的取到所有位数的值的

#include "iostream.h"

void main()

{ d