Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Помогите пожалуйста решить задачу на питоне

Формат ввода
Вводятся строки чисел через дефис, окружённый пробелами, пока не будет введена строка из более, чем 10 чисел – она служит признаком окончания ввода, в рассмотрении не участвует.

Формат вывода
Статистика представляет собой словарь с ключами:

last – номер строки, в которой на последнем месте стоит самое большое число из всех последних чисел всех строк; если таких несколько, то номер первой встреченной строки (с меньшим номером);
largest – наибольшая сумма чисел в одной строке;
triple – сумма остатков от деления на 3 всех положительных чисел;
average – целая часть от среднего арифметического всех чисел.
Выведите полученный словарь без форматирования.

По дате
По рейтингу
Аватар пользователя
Мастер
7мес

Решение от GPT
Мне просто самом лень и долго это самому писать:

def process_input():
"""Обрабатывает ввод строк чисел и вычисляет статистику."""

stats = {
"last": 0,
"largest": 0,
"triple": 0,
"average": 0,
}
line_num = 0
total_sum = 0
total_count = 0
max_last_num = float('-inf')
max_last_num_line = 0

while True:
line = input()
line_num += 1
numbers = line.split(" - ")
numbers = [int(num) for num in numbers]

if len(numbers) > 10:
break

line_sum = sum(numbers)
stats["largest"] = max(stats["largest"], line_sum)

if numbers:
last_num = numbers[-1]
if last_num > max_last_num:
max_last_num = last_num
max_last_num_line = line_num

for num in numbers:
total_sum += num
total_count += 1
if num > 0:
stats["triple"] += num % 3

stats["average"] = total_sum // total_count if total_count > 0 else 0
stats["last"] = max_last_num_line
return stats


if __name__ == "__main__":
statistics = process_input()
print(statistics)