Отсортируйте три числа и верните элемент с индексом 1. Это медиана, включая случаи с равными значениями.
Определение медианного из трёх чисел
Отсортируйте три числа и верните элемент с индексом 1. Это медиана, включая случаи с равными значениями.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию find_middle_number(), принимающую три параметра в указанном порядке:
- x — целое число (|x| ≤ 10³);
- y — целое число (|y| ≤ 10³);
- z — целое число (|z| ≤ 10³).
Функция должна вернуть число, которое находится посередине по величине среди переданных значений x, y, z.
Ограничения Функция обязана возвращать медианное (по величине) значение из трёх входных чисел.
Пример 1:
print(find_middle_number(1, 2, 3))
Вывод: 2
Пример 2:
print(find_middle_number(3, 1, 2))
Вывод: 2
Ответ
Отсортируйте три числа и верните элемент с индексом 1. Это медиана, включая случаи с равными значениями.
def find_middle_number(x, y, z):
return sorted((x, y, z))[1]
Примеры: (1, 2, 3) и (3, 1, 2) дают 2; (5, 5, 9) — 5; (-3, 0, -1) — -1. Для фиксированного количества из трёх значений время и память постоянны.
Альтернатива для целых чисел: x + y + z - min(x, y, z) - max(x, y, z). Она также корректно учитывает повторы, поскольку удаляет по одному минимальному и максимальному значению, а не все их вхождения.