Python 对于Codeforces,输出返回2而不是1

Python 对于Codeforces,输出返回2而不是1,python,Python,在我的程序中,除了一个测试外,所有问题都可以解决,输入如下所示: 这是我的代码: while True: n = int(input()) if n in range(1, 1001): break total_solutions = 0 mini_solutions = 0 for i in range(n): solutions = input() for num in solutions: if num == "

在我的程序中,除了一个测试外,所有问题都可以解决,输入如下所示:

这是我的代码:

while True:
    n = int(input())
    if n in range(1, 1001):
        break


total_solutions = 0
mini_solutions = 0
for i in range(n):
    solutions = input()
    for num in solutions:
        if num == "1":
            mini_solutions += 1
    if mini_solutions >=2:
        total_solutions += 1
        mini_solutions = 0

print(total_solutions)

我不明白为什么它返回2而不是1。有人能帮我吗

while True:
n = int(input())
if n in range(1, 1001):
    break

total_solutions = 0
for i in range(n):
solutions = input().split(" ")
mini_solutions = 0
for num in solutions:
    if num == "1":
        mini_solutions += 1
if mini_solutions >=2:
    total_solutions += 1
    mini_solutions = 0

print(total_solutions)

这很好,请查看:)

试试这个,它更简短,可读性更强,所以您可以更快地捕获bug

n = int(input())
solvable_problems = 0
for _ in range(n):
    problem = [int (i) for i in input().split()]
    if sum(problem) >= 2:
        solvable_problems += 1

print(solvable_problems)

无论是否有两个以上的解决方案知道答案,mini_解决方案都应重置为0。如果你把它从If语句中去掉,那么这个解决方案就会起作用