"Переворот" числа в Pascal
Вводится число. Преобразовать его в другое число, цифры которого будут следовать в обратном порядке по сравнению с введенным числом.
Введем переменные:
- 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