chars=input()
a=([int(x.strip()) for x in chars.split(',')])
b=len(a)
count=1
result=0
max=0
for i in range(b-1):
for j in range(i,b):
if a[i] == a[j]:
print(a[i])
count=count+1
result=result+(a[i]*count)
count=0
在上面的代码中,如果a[i]==a[j]
为真,我检查条件,如果它们相等,我打印结果。
但是输出错误了。
给出输入
-9,3,0,20,-10,-11,11
以上打印
-9
3
0
20
-10
-11
输入中没有相同的值,为什么它们都被打印出来?
答案 0 :(得分:3)
每次迭代总是在range(i, b)
上进行一次迭代,其中i == j
。毕竟,你在 i
开始了你的内循环,所以当然 a[i] == a[j]
将是真的,它们是相同的索引列表。
在i + 1
处开始内循环:
for i in range(b-1):
for j in range(i + 1, b):
答案 1 :(得分:0)
chars=input()
a=chars # input() Equivalent to eval(raw_input(prompt))
b=len(a)
count=1
result=0
max=0
for i in range(b-1):
for j in range(i+1,b): # start from i + 1
if a[i] == a[j]:
print(a[i])
count=count+1
result=result+(a[i]*count)
count=0