Напишите программу на Python, которая будет находить сумму двух наибольших и сумму двух наименьших чисел

  • 65
Напишите программу на Python, которая будет находить сумму двух наибольших и сумму двух наименьших чисел в последовательности целых чисел. Программа должна выводить эти две суммы в указанном порядке. На вход программа получает целые числа, и их количество не известно заранее. Последовательность чисел заканчивается, когда вводится число 0 (это число не входит в последовательность). Всего в последовательности может быть не более 1000 чисел. Абсолютное значение введенных чисел не превышает 30,000. В последовательности всегда присутствует как минимум два числа.
Рыжик
37
Хорошо, чтобы решить эту задачу, мы можем использовать следующий алгоритм:

1. Создадим переменные `max1`, `max2`, `min1` и `min2` и присвоим им значения отрицательной бесконечности.
2. Создадим переменную `num` и прочитаем первое число из ввода.
3. Создадим переменную `count` и присвоим ей значение 0, чтобы отслеживать количество чисел в последовательности.
4. Начнем цикл, который будет выполняться до тех пор, пока `num` не равно нулю или пока `count` не станет равной 1000.
5. Внутри цикла проверим условие, если `num` больше `max1`, то присвоим `max2` значение `max1`, а затем `max1` значение `num`.
6. Если `num` больше или равно `max2` и меньше `max1`, присвоим `max2` значение `num`.
7. Также проверим условие, если `num` меньше `min1`, присвоим `min2` значение `min1`, а затем `min1` значение `num`.
8. Если `num` меньше или равно `min2` и больше `min1`, присвоим `min2` значение `num`.
9. Увеличим счетчик `count` на 1.
10. Прочитаем следующее число `num` из ввода.
11. После выхода из цикла проверим, было ли введено хотя бы два числа. Если это условие выполняется, выведем сумму `max1` и `max2`, а затем сумму `min1` и `min2` в указанном порядке.

Вот пример программы на Python, решающей данную задачу:

python
max1 = -float("inf")
max2 = -float("inf")
min1 = float("inf")
min2 = float("inf")
num = int(input("Введите число: "))
count = 0

while num != 0 and count < 1000:
if num > max1:
max2 = max1
max1 = num
elif num >= max2:
max2 = num
if num < min1:
min2 = min1
min1 = num
elif num <= min2:
min2 = num

count += 1
num = int(input("Введите число: "))

if count >= 2:
print("Сумма двух наибольших чисел:", max1 + max2)
print("Сумма двух наименьших чисел:", min1 + min2)
else:
print("В последовательности не было введено хотя бы два числа.")


Эта программа сначала инициализирует переменные для хранения наибольших и наименьших чисел. Затем она читает числа из ввода до тех пор, пока не будет введено число 0 или пока не будет достигнуто ограничение на количество чисел. Внутри цикла программа обновляет значения наибольших и наименьших чисел, а затем выводит результаты, если были введены хотя бы два числа.

Пожалуйста, обратите внимание, что данная программа требует ввода чисел с клавиатуры. Вы также можете модифицировать код, чтобы он считывал числа из файла или использовал случайно сгенерированные числа.