K. Красота спасёт мир

Одно из древних поверий гласит, что трёхзначное число красиво, если сумма его минимальной и максимальной цифр равна оставшейся цифре умноженной на 2.

Напишите систему определяющую красоту числа.

Формат ввода

Одно трёхзначное число.

Формат вывода:

YES — если число красивое, иначе — NO.

Пример

Ввод

123

Вывод

YES

Ввод

748

Вывод

NO

Решение

Если разложить число на цифры и найти максимальную и минимальные цифры уже не вызывает проблемы, то найти среднее по значению число для многих становится затруднительно. Это задача на алгоритмическое мышление.
Нужно придумать способ, который позволяет вычислить среднюю по значению цифру.

Как это обычно бывает в программировании подходов к решению задачи может быть несколько:

Например можно сравнивать каждое из чисел по очереди с максимальным и минимальным и если оно не совпало ни с тем ни с другим, то оно и есть среднее. Если совпало, переходим к следующей цифре.

Второй вариант – математический:
Находим сумму всех цифр и вычитаем из нее максимальное и минимальное значения. Оставшееся значение и будет искомым средним.

Посмотреть код

Решение со сравнениями

Python
num = int(input())

first = num // 100
second = num // 10 % 10
third = num % 10

if max(first, second, third) != first and min(first, second, third) != first:
    middle = first
elif max(first, second, third) != second and min(first, second, third) != second:
    middle = second
else:
    middle = third

if max(first, second, third) + min(first, second, third) == middle * 2:
    print('YES')
else:
    print('NO')

Решение математическое

Python
num = int(input())

first = num // 100
second = num // 10 % 10
third = num % 10

middle = first + second + third - max(first, second, third) - min(first, second, third)

if max(first, second, third) + min(first, second, third) == middle * 2:
    print('YES')
else:
    print('NO')
Подписаться
Уведомить о
guest
4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Игорь
Игорь
15.08.2024 12:51

Добрый день, есть мое решение.

number = int(input())

first = number // 100
last = number % 10
center = number % 100 // 10
if first + last == center * 2:
print(‘YES’)
else:
print(‘NO’)

Для чего находить повторно число “middle” когда уже есть “second”?
И да мой вариант не проходит в yandex вопрос только почему?
Спасибо.

Игорь
Игорь
Ответить на  Сергей Клочко
15.08.2024 15:12

Что то не понимаю.
Должна же быть равна сумма чисел, если число 123 то 1 + 3 == 2 * 2 (YES)а если число 213 то 2 + 3 == 2 * 1(NO).