2024年5月6日发(作者:戈绣)
正解的是:末尾有24个0。
方法一:
乘积会产生0的,就是2的倍数与5的倍数相乘产生的,如8×15=120,
等等。在1到100之中,2的倍数多于5的倍数,所以只需找出5的
因子有多少个,那么末尾就有多少个0。在1到100之中,5的倍数
共有100÷5=20个,其中25的倍数有100÷25=4个,所以只含有一
个因子5的倍数有20-4=16个,这16个与2的倍数相乘只会产生一
个0,共产生16个0;而25的倍数有25、50、75、100这四个,每
个与4的倍数相乘都会产生两个0,这样共会产生8个0。
所以
末尾0的个数是:16+8=24个。
方法二:
100÷5=20
20÷5=4
在1到100之中,5的因子共有20+4=24个,所以末尾有24个0。
这种方法可以推广到:1×2×3×4×5×6×...×n,它的末尾有多少
个0的算法是:
用n÷5,商取整数,
再用该整数去除以5,商也是取整数,
不断的除以5,直到所得的商取整数后小于5为止。将全部的商加起
来,得数就是0的个数。
例如:上题100÷5=20,20÷5=4,所得商4小于5,所以不用再除了,
全部的商之和为:20+4=24,这就是0的个数。
方法三:
经过分析直接使用代码:
1.
2.
3.
4.
5.
6.
def zero_num(n):
num = 0
while True:
n = int(n / 5)
if n == 0:
break
7.
8.
9.
10.
11.
num = num + n
return num
if __name__ == "__main__":
print("100!末尾0的个数为:" + str(zero_num(100)))
运行结果:
2024年5月6日发(作者:戈绣)
正解的是:末尾有24个0。
方法一:
乘积会产生0的,就是2的倍数与5的倍数相乘产生的,如8×15=120,
等等。在1到100之中,2的倍数多于5的倍数,所以只需找出5的
因子有多少个,那么末尾就有多少个0。在1到100之中,5的倍数
共有100÷5=20个,其中25的倍数有100÷25=4个,所以只含有一
个因子5的倍数有20-4=16个,这16个与2的倍数相乘只会产生一
个0,共产生16个0;而25的倍数有25、50、75、100这四个,每
个与4的倍数相乘都会产生两个0,这样共会产生8个0。
所以
末尾0的个数是:16+8=24个。
方法二:
100÷5=20
20÷5=4
在1到100之中,5的因子共有20+4=24个,所以末尾有24个0。
这种方法可以推广到:1×2×3×4×5×6×...×n,它的末尾有多少
个0的算法是:
用n÷5,商取整数,
再用该整数去除以5,商也是取整数,
不断的除以5,直到所得的商取整数后小于5为止。将全部的商加起
来,得数就是0的个数。
例如:上题100÷5=20,20÷5=4,所得商4小于5,所以不用再除了,
全部的商之和为:20+4=24,这就是0的个数。
方法三:
经过分析直接使用代码:
1.
2.
3.
4.
5.
6.
def zero_num(n):
num = 0
while True:
n = int(n / 5)
if n == 0:
break
7.
8.
9.
10.
11.
num = num + n
return num
if __name__ == "__main__":
print("100!末尾0的个数为:" + str(zero_num(100)))
运行结果: