(М. Шагитов) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(0\) до \(10~000.\) Найдите все тройки элементов последовательности, в которых хотя бы одно число равно сумме цифр другого числа в тройке, а сумма всех чисел тройки меньше, чем сумма цифр всех чисел в файле, делящихся на \(50.\) В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
nums = [int(x) for x in open('5174.txt')]
s50 = sum(int(x) for x in ''.join(str(n) for n in nums if n % 50 == 0))
q, ms = 0, 0
for a, b, c in zip(nums, nums[1:], nums[2:]):
if (sum(int(z) for z in str(a)) in (b, c) or sum(int(z) for z in str(b)) in (c, a) or sum(int(z) for z in str(c)) in (b, a)) \
and a + b + c < s50:
q += 1
ms = max(ms, a + b + c)
print(q, ms)
Ответ: \(310 \,\, 6765\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене