Одно из древних поверий гласит, что трёхзначное число красиво, если сумма его минимальной и максимальной цифр равна оставшейся цифре умноженной на 2.
Напишите систему определяющую красоту числа.
Формат ввода
Одно трёхзначное число.
Формат вывода:
YES — если число красивое, иначе — NO.
Пример
Ввод
123
Вывод
YES
Ввод
748
Вывод
NO
Решение
Если разложить число на цифры и найти максимальную и минимальные цифры уже не вызывает проблемы, то найти среднее по значению число для многих становится затруднительно. Это задача на алгоритмическое мышление.
Нужно придумать способ, который позволяет вычислить среднюю по значению цифру.
Как это обычно бывает в программировании подходов к решению задачи может быть несколько:
Например можно сравнивать каждое из чисел по очереди с максимальным и минимальным и если оно не совпало ни с тем ни с другим, то оно и есть среднее. Если совпало, переходим к следующей цифре.
Второй вариант – математический:
Находим сумму всех цифр и вычитаем из нее максимальное и минимальное значения. Оставшееся значение и будет искомым средним.
Посмотреть код
Решение со сравнениями
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')
Решение математическое
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')
Добрый день, есть мое решение.
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 вопрос только почему?
Спасибо.
second не всегда будет средним по значению. например если дали число 213 то нужно вернуть YES
Что то не понимаю.
Должна же быть равна сумма чисел, если число 123 то 1 + 3 == 2 * 2 (YES)а если число 213 то 2 + 3 == 2 * 1(NO).
Одно из древних поверий гласит, что трёхзначное число красиво, если сумма его минимальной и максимальной цифр равна оставшейся цифре умноженной на 2.
В случае 213 минимальное – 1, максимальное – 3, оставшееся – 2. 1 + 3 = 2 * 2