Следующий палиндром

Рейтинг: -5Ответов: 1Опубликовано: 13.05.2023

Натуральное число называется палиндромом, если его запись в десятичной системе счисления одинаково читается как слева направо, так и справа налево. По данному натуральному числу N определите следующее за ним натуральное число (то есть наименьшее число, которое превосходит N), являющееся палиндромом.

Формат входного файла Программа получает на вход одно натуральное число N, состоящее не более чем из 200 цифр.

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

Ответы

▲ 3

Задачу можно решить без перебора, если догадаться как выглядит следующий палиндром. Сперва обработаем особый случай из одних девяток:

    9 ->     11
   99 ->    101
  999 ->   1001
 9999 ->  10001
99999 -> 100001

Затем от числа отрежем его левую половину, перевернём её и сравним с самим числом. Если получилось больше, это ответ:

  123_100 ->   123_321
123_8_100 -> 123_8_321

Если нет, левую часть увеличим на единицу:

  123_400 ->   123_321 ->   124_421
123_8_400 -> 123_8_321 -> 123_9_321
123_9_400 -> 123_9_321 -> 124_0_421

Код картинками вставлять не надо. Неудобно:

введите сюда описание изображения