#python #loops #break
#python #циклы #разрыв
Вопрос:
Я пытаюсь решить проблему на codeforces, но столкнулся с проблемой: следующие коды не дают одинаковых результатов (значение nb). Отличается только 4-я строка до конца: заменено break
на j=i-1
.
n = int(input())
a = list(map(int, input().split()))
nb = 0
s1 = 0
k = 0
for i in range(n):
s1 = a[i]
s3 = s1
for j in range(k, i):
if s3 == 0:
k = i
nb = 1
s1 = a[i]
break
s3 -= a[j]
print(nb)
второй код:
n = int(input())
a = list(map(int, input().split()))
nb = 0
s1 = 0
k = 0
for i in range(n):
s1 = a[i]
s3 = s1
for j in range(k, i):
if s3 == 0:
k = i
nb = 1
s1 = a[i]
j = i - 1
s3 -= a[j]
print(nb)
Более того, оба дают одинаковые значения в 16 первых тестах. Второй сбой на 17-м.
Комментарии:
1. Каков ваш вопрос по поводу этого наблюдения? Почему вас удивляет, что использование разного кода дает разные результаты?
2. Я не понимаю разницы. Разве
break
иj=i-1
в этом случае не то же самое?