Форум » Обработка целых чисел » Не сходится ответ к задаче 5067 » Ответить

Не сходится ответ к задаче 5067

ZaberovDV: Здравствуйте. Не сходится ответ к задаче. У меня получается 1356 639 вместо 1318 639 Мне кажется, что код верный: [pre2] a = [int(x) for x in open('17-288.txt')] ans = [] for i in range(len(a) - 3): d1 = a[ i] d2 = a[i + 1] d3 = a[i + 2] d4 = a[i + 3] if (d1 % 10 == 3 or d2 % 10 == 3 or d3 % 10 == 3 or d4 % 10 == 3) \ and (d1 % 7 != 3 and d2 % 7 != 3 and d3 % 7 != 3 and d4 % 7 != 3): ans.append(max(d1, d2, d3, d4) - min(d1, d2, d3, d4)) print(len(ans), min(ans)) [/pre2] Если мой код не верный, то где? Подскажите, пожалуйста)

Ответов - 3

Поляков: Перед тем, как взять остаток, не забывайте брать модуль. Там есть отрицательные числа.

ZaberovDV: Спасибо. Я об этом подумал, но меня остановила мысль о том, что остаток отрицательного числа всё равно число положительное. Хотя остатки разные: -125%7 == 1 125%7 == 6 Почему мы не берем остатки от отрицательных чисел и должны получать остатки от модулей этих чисел? Как из условия задачи это можно понять?)

Поляков: Согласен с замечанием. Я поправил условие.




полная версия страницы