计算给定数字阶乘中尾随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帮助
答案 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)