e-olymp 29. Уровень палиндромности

Задано натуральное [latex]M[/latex]. Если число не палиндром – записываем его в обратном порядка и слагаем с заданным. Действия повторяем до тех пор, пока не получим число-палиндром. Количество выполненных операций назовем уровнем палиндромности заданного числа.

Найти уровень палиндромности заданного числа [latex]M[/latex].

Входные данные

Единственное число [latex]M (0 < M < 10000)[/latex].

Выходные данные

Единственное число – уровень палиндромности.

Задача взята с сайта e – olymp.

Тесты

  Входные данные    Выходные данные
1 0
79 6
101 0
198 5
865 2
9998 6

Алгоритм

В данной задаче для заданного числа требуется определить уровень его палиндромности – количество раз, которое придется просуммировать его с обратным ему числом до получения палиндрома.

  1. Для начала инициализируем счетчик, который хранит в себе текущее значение уровня палиндромности, и логическую переменную, значение которой ложно до тех пор пока палиндром не найден. Данное условие и будет критерием для выполнения тела основного цикла.
  2. Присвоив значения переменным в цикле, выполняем последовательный разбор введенного числа на цифры и сборку “зеркального” числа.
  3. Проверяем равенство числа и ему обратного.
  4. Выполнение условного оператора сигнализирует о том, что палиндром найден, следовательно выводим “уровень”, изменяем значение логической переменной на противоположное и выходим из цикла.
  5. В противном случае суммируем текущее число и “зеркальное”, инкрементируем счетчик.
  6. Повторяем пункты 2, 3, 5 до истинности пункта 3 и перехода к 4.

Код программы:

Код программы
Засчитанное решение