В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число отрицательно, а сумма чисел пары меньше количества чисел последовательности, кратных 32.
Решение:
|
f=open('ege-inf-real-08062024-2day-q17.txt').readlines() a=[int(x) for x in f] k=0 for i in range(len(a)): if a[i]%32 == 0: k+=1 b=[] for i in range(len(a)-1): if (a[i]<0 or a[i+1]<0) and a[i]+a[i+1]<k: b.append(a[i]+a[i+1]) print(len(b),max(b)) |
Данный код решает задачу поиска пар чисел в последовательности, удовлетворяющих определённым условиям. Вот пошаговое объяснение:
- Считывание данных из файла:
|
f=open('ege-inf-real-08062024-2day-q17.txt').readlines() |
Код открывает файл с именем 'ege-inf-real-08062024-2day-q17.txt'
и читает все строки в список f
.
- Преобразование строк в целые числа:
Этот код создает список a
, содержащий целые числа, преобразованные из строк в списке f
.
- Подсчёт количества чисел, кратных 32:
|
k=0 for i in range(len(a)): if a[i]%32 == 0: k+=1 |
Инициализируется переменная k
для подсчёта количества чисел в последовательности, кратных 32. Цикл проходит по всем элементам списка a
, и если число делится на 32 без остатка, k
увеличивается на 1.
- Поиск пар чисел, удовлетворяющих условиям:
|
b=[] for i in range(len(a)-1): if (a[i]<0 or a[i+1]<0) and a[i]+a[i+1] |
Создается пустой список b
для хранения сумм подходящих пар. Цикл проходит по всем парам последовательных элементов списка a
. Если хотя бы одно число в паре отрицательное и сумма пары меньше k
, сумма добавляется в список b
.
- Вывод результатов:
В конце выводится количество найденных пар (len(b)
) и максимальная сумма среди этих пар (max(b)
).
Ответ: 4969 299