В файле(dz17-17.txt) содержится последовательность целых чисел. Элементы последовательности могут принимать значения от 0 до 1500 включительно. Определите сначала количество троек элементов последовательности, в которых хотя бы два числа в двоичной системе счисления имеют не менее 3 единиц и эти же два числа в двоичной системе счисления имеют как минимум один ноль, а затем максимальное число среди максимальных чисел в подходящих тройках. Под тройкой подразумевается три идущих подряд элемента последовательности.
f = open(’dz17-17.txt’)
s = [int(_) for _ in f]
counter = 0
maxim = 0
for i in range(len(s) - 2):
x1 = bin(s[i])[2:]
x2 = bin(s[i + 1])[2:]
x3 = bin(s[i + 2])[2:]
y1 = (x1.count(’1’) >= 3) * (x1.count(’0’) >= 1)
y2 = (x2.count(’1’) >= 3) * (x2.count(’0’) >= 1)
y3 = (x3.count(’1’) >= 3) * (x3.count(’0’) >= 1)
if sum([y1, y2, y3]) >= 2:
counter += 1
maxim = max(maxim, s[i], s[i + 1], s[i + 2])
print(counter, maxim)
Ответ: 9926 1500