Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
285
Добавлен:
04.03.2014
Размер:
1.32 Кб
Скачать
Задача:
Вводится число. Преобразовать его в другое число, цифры которого будут следовать в обратном порядке по сравнению с введенным числом.

Описание переменных:
n, m - первое и второе числа;
a - хранение очередного разряда.

Алгоритм решения задачи:
Алгоритм решения задачи сводится к следующему циклу: 1) взять последнюю цифру в первом числе; 2) записать ее в конец второго; 3) убрать последнюю цифру из первого числа. При этом второе число изначально не должно иметь значащих разрядов. Таким образом последняя цифра первого числа окажется первой цифрой во втором; предпоследняя цифра первого числа - второй во втором числе; и т. д.

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

readln;
end.
Соседние файлы в папке Циклы в массивах и строках