Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на Python

Zagir Tulubaev Ученик (84), закрыт 1 год назад
Красота спасёт мир
Одно из древних поверий гласит, что трёхзначное число красиво, если сумма его минимальной и максимальной цифр равна оставшейся цифре умноженной на 2.

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

Формат ввода
Одно трёхзначное число

Формат вывода
YES — если число красивое, иначе — NO

Пример 1
Ввод
123
Вывод
YES
Пример 2
Ввод
748
Вывод
NO
Лучший ответ
Олег Че Мудрец (11569) 1 год назад
 number = input("Введите трехзначное число: ") 

# Проверяем, что введено трехзначное число
if len(number) != 3:
print("Ошибка! Введите трехзначное число.")
else:
# Получаем цифры числа
a, b, c = int(number[0]), int(number[1]), int(number[2])

# Находим минимальную и максимальную цифры
min_digit = min(a, b, c)
max_digit = max(a, b, c)

# Вычисляем оставшуюся цифру
remaining_digit = a + b + c - min_digit - max_digit

# Проверяем, красивое ли число
if min_digit + max_digit == remaining_digit * 2:
print("YES")
else:
print("NO")
Сначала мы запрашиваем у пользователя трехзначное число, затем проверяем, что это действительно трехзначное число. Если введено не трехзначное число, выводится сообщение об ошибке.

Затем мы получаем цифры числа, находим минимальную и максимальную цифры, и вычисляем оставшуюся цифру.

Далее мы проверяем, является ли число красивым с помощью условия: сумма минимальной и максимальной цифр должна быть равна оставшейся цифре, умноженной на 2. Если условие выполняется, выводим "YES", иначе - "NO".
Константин 123Ученик (95) 1 год назад
у тебя ошибка. number[0] и так далее не может быть выполнено тк это функция доступна только для строк (str) а нумбер это целое число (int)
Остальные ответы
Молот Шотландцев Высший разум (301578) 1 год назад
Без тупых г*ботов, а своей головой это делается максимум в 4 строчки
 n = list(input()) 
max_ = n.pop(n.index(max(n)))
min_ = n.pop(n.index(min(n)))
print('YES' if int(max_) + int(min_ ) == int(n[0]) * 2 else 'NO')
Zagir TulubaevУченик (84) 1 год назад
Молот Шотландцев Высший разум (301578) Всё верно решено. Не надо врать. Проверяльщики - теже самые тупые г*боты
Nikola Sergeev Профи (698) 1 год назад
 n = input();d = [int(x) for x in n];m, M = min(d), max(d);print("YES" if m + M == (sum(d) - m - M) * 2 else "NO") 
Похожие вопросы