"Переворот" числа
Вводится число. Преобразовать его в другое число, цифры которого будут следовать в обратном порядке по сравнению с введенным числом.
Введем переменные:
- n, m - исходное число и "перевернутое";
- a - временное хранение очередной цифры, которая "переносится" из одного числа в другое.
Алгоритм решения задачи сводится к следующему циклу: 1) взять последнюю цифру в первом числе; 2) записать ее в конец второго; 3) убрать последнюю цифру из первого числа. Таким образом последняя цифра первого числа окажется первой цифрой во втором; предпоследняя цифра первого числа - второй во втором числе и так далее
- Находим остаток (
mod
) от деления числа n на 10. Результат сохраняем в переменной a. - На каждом шаге разрядность m надо увеличивать на единицу, то есть умножать на 10. Например, если было число 56, то, умножив его на 10, получим 560. Далее следует прибавить остаток из переменной a, например, 3. В итоге получим 563. Получаем формулу:
m = m * 10 + a
. - Делим n нацело на 10, тем самым избавляемся от младшего разряда.
Программа на языке Паскаль:
var
n, m: longint;
a: byte;
begin
readln(n);
m := 0;
while n > 0 do begin
a := n mod 10;
m := m * 10 + a;
n := n div 10;
end;
writeln(m);
end.
Пример выполнения программы:
40013
31004