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
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии