对于循环覆盖先前的结果

时间:2019-03-24 02:34:45

标签: python

计算给定数字阶乘中尾随0的数量。

输入格式

输入的第一行包含T-测试用例数。其后是T行,每行包含一个整数N。

输出格式

对于每个测试用例,在N!中打印尾随0的数量,并用新行分隔

这是上述问题的代码

`n=int(input())
 for i in range (0,n):
     num=int(input())
     count=0
     i=5
     m=num/i
     for i in range (m>=1):
          count= count+m
  print(count)`

预期输出为:

输入:

2
5
10

输出:

1
2

但只有2个显示为输出覆盖1

plz帮助

2 个答案:

答案 0 :(得分:1)

您只需要将打印语句移到外部循环中即可

result = []
n = int(input())
for i in range(0, n):
    num = int(input())
    count = 0
    i = 5
    m = num / i
    for i in range(m >= 1):
        i * 5
        count = count + m
    result.append(count) # <- print statement was here but I added extra indent and then changed to append
for count in result:
    print(count)

根据您的评论,我还添加了代码来存储您的结果,而不是立即打印每个结果,以便在您输入所有内容后将它们全部打印出来。

这是使用缩进作为语言语法的Python的缺点之一。犯这类错误很容易。

顺便说一句,这给出了您期望的输出,但是您认为 i * 5 行在做什么?它什么也没做。另外,使用 range(m> = 1),您可以从布尔值创建范围,这很奇怪。

答案 1 :(得分:0)

此代码找不到。数字阶乘中的尾随零

for i in range(int(input())):
     a=int(input())
     f=1
     c=0
     for j in range(1,n+1):
           f*=j
     while(f%10==0):
          f/=10
          c+=1
     print(c)