Умение составить алгоритм обработки числовой последовательности и записать его в виде простой программы (10–15 строк) на языке программирования · 8 заданий
- Задание №17№17
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от −10 000 до 10 000 включительно. Опред…
Массивы и сортировка
- Задание №17№17
Рассматривается множество целых чисел, принадлежащих числовому отрезку [1016; 7937], которые делятся на 3 и не делятся на 7, 17, 19, 27. Найдите колич…
Массивы и сортировка
- Задание №17№17
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определ…
Массивы и сортировка
- Задание №17№17
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определ…
Массивы и сортировка
- Задание №17№17
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определ…
Массивы и сортировка
- Задание №17№17
В файле содержится последовательность натуральных чисел, каждое из которых не превышает 100 000. Определите количество троек элементов последовательно…
Массивы и сортировка
- Задание №17№17
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от –100 000 до 100 000 включительно. Определите количест…
Массивы и сортировка
- Задание №17№17
Задание выполняется с использованием прилагаемых файлов. В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения…
Массивы и сортировка
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от −10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, а сумма элементов пары не более максимального элемента последовательности, кратного 3. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Правильный ответ
2439 998
Пояснение
Решение:
Задача решается в два прохода. Сначала находим порог — максимальный элемент всей последовательности, кратный 3; в этом файле он равен 999. Затем перебираем пары соседних элементов и отбираем те, у которых хотя бы одно число делится на 3, а сумма пары не превосходит найденного порога.
Проверка делимости на 3 через остаток в Python корректна и для отрицательных чисел: xmod3=0 тогда и только тогда, когда x кратно 3.
a = [int(s) for s in open('52900_17.txt')]
m = max(x for x in a if x % 3 == 0) # 999 - порог
count = 0
best = None
for x, y in zip(a, a[1:]):
if (x % 3 == 0 or y % 3 == 0) and x + y <= m:
count += 1
if best is None or x + y > best:
best = x + y
print(count, best) # 2439 998Подходящих пар 2439, наибольшая из их сумм равна 998 (это меньше порога 999, поэтому условие выполнено).Ответ: 2439 998