Задано натуральное число n. Увеличьте на 1 все
его четные цифры и уменьшите на 1 все его нечетные цифры.
Вход. Одно натуральное число n
(n ≤ 109).
Выход. Выведите обновленное
число.
Пример входа |
Пример выхода |
983210 |
892301 |
циклы
Переберем цифры
числа n. Изменим каждую цифру согласно требованию задачи.
Построим обновленное число.
Пример
Пусть n = 9832. Последовательно делим его на 10, выделяем
последнюю цифру. Изменяем ее и дописываем перед результатом res. В переменной p перебираем
степени числа 10.
На каждой
итерации после изменения последней цифры d = n
% 10 производится операция res = res
+ d * p.
Реализация алгоритма
Читаем
входное значение n.
scanf("%d", &n);
В переменной res строим новое число. В переменной p перебираем
степени числа 10: 1, 10, 100, … .
res = 0; p = 1;
Перебираем цифры числа n.
while (n > 0)
{
Выделяем последнюю цифру d числа n. Изменяем
ее согласно условию задачи.
d = n %
10;
if (d % 2 == 0) d++; else d--;
Ставим обновленную цифру d в соответствующую позицию
результата.
res = res
+ d * p;
Пересчитываем значения p и n.
p *= 10;
n /= 10;
}
Выводим результат.
printf("%d\n", res);