В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от -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