python编写程序,计算 1*2*3*…*300 后面有多少个0
答案:3 悬赏:30 手机版
解决时间 2021-03-11 09:34
- 提问者网友:愿为果
- 2021-03-10 14:54
急需
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-03-10 16:21
a=reduce(lambda x,y:x*y,range(1,301))
n=0
while a%10**n==0:
n+=1n
>>>75
所以是74个0.(整除10的74次方没有余数).
n=0
while a%10**n==0:
n+=1n
>>>75
所以是74个0.(整除10的74次方没有余数).
全部回答
- 1楼网友:千杯敬自由
- 2021-03-10 18:07
123个
from functools import reduce
str(reduce(lambda x,y: x*y, range(1, 300))).count('0')
再看看别人怎么说的。
- 2楼网友:掌灯师
- 2021-03-10 16:48
每一个5的倍数都会在结果后面增加一个0
每个25的倍数都会再额外增加一个0
..随判断指标按5的指数增长,都会继续增加0的数量
def computeit(limit):
dsts = xrange(1, limit + 1)
b, p = 0, 0
rst = dsts
while rst:
base = 5**p
rst = [x for x in rst if x/base % 5 == 0]
if rst:
b += len(rst)
p += 1
return b
print computeit(300)
print computeit(50000)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯