P. А роза упала на лапу Азора 2.0

Вспомним о палиндромах, которые в обоих направлениях читаются одинаково. Напишите программу, которая проверяет, является ли число палиндромом.

Формат ввода

Одно натуральное число.

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

YES — если число является палиндромом, иначе — NO.

Пример

Ввод

1234

Вывод

NO

Ввод

123454321

Вывод

YES

Решение

Чтобы решить эту задачу, достаточно развернуть число, так, чтобы самые младшие разряды, стали самыми старшими. Для этого с помощью цикла можно разобрать число на отдельные цифры и собрать его в обратном порядке. Как раскладывать число на цифры мы знаем из задачи K. Цифровая сумма. Достаточно найти остаток от деления на 10, а само число поделить на 10 целочисленно. Чтобы собрать число в обратном порядке, достаточно полученый результат накапливать в переменной, умножая ее на 10 каждую итерацию цикла.

Во втором решении показано использование функции divmod(), которая позволяет выполнить в одно действие операцию целочисленного деления и поиск остатка от деления.

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

Решение

Python
num = int(input())

original_num = num
reversed_num = 0

while num > 0:
    digit = num % 10
    reversed_num = reversed_num * 10 + digit
    num //= 10

if original_num == reversed_num:
    print('YES')
else:
    print('NO')

Решение

Python
num = int(input())

original_num = num
reversed_num = 0

while num > 0:
    num, digit = divmod(num, 10)
    reversed_num = reversed_num * 10 + digit

if original_num == reversed_num:
    print('YES')
else:
    print('NO')
Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Mazen
Mazen
31.07.2025 15:35

num = input()
num1 = num
rev = “”
while num1 > “”:
    rev += num1[-1]
    num1 = num1[:-1]
if num == rev:
    print(“YES”)
else:
    print(“NO”)