C. Инверсия
0
Имя входного файла
стандартный ввод
Имя выходного файла
стандартный вывод
Ограничение по времени
2 секунды
Ограничение по памяти
64 мегабайта
Необходимо реализовать функцию, которая для заданного целого числа меняет порядок цифр в нем на обратный. Продемонстрировать работу процедуры на 5 целых числах.
Формат входных данных
С клавиатуры вводятся через пробел 5 целых положительных чисел, не превосходящих 109.
Формат выходных данных
Необходимо вывести через пробел 5 чисел — измененные исходные числа.
Примечания
Если у нового числа есть ведущие нули — выводить их не нужно.
Примеры
входные данные выходные данные
31 1 294 421 1122
13 1 492 124 2211
Ответы на вопрос
Алгоритм решения
Для каждого числа будем убирать последнюю цифру, пока число не станет нулём. При этом для очередной последней цифры ответ умножаем на 10 и прибавляем к нему эту цифру.
Для одного числа алгоритм будет выглядеть так:
while x > 0:
ans = ans * 10 + (x mod 10)
x = x // 10
Где x - заданное число, ans - ответ на задачу (перевёрнутое число), mod - операция получения остатка, // - операция целочисленного деления.
Формально, x mod 10 возвращает последнюю цифру числа x ("остаток от деления x на 10"), а x // 10 возвращает число x без последней цифры ("разделить x на 10 и отбросить остаток").
Решение (Pascal)
var
x, i, ans: integer;
begin
for i := 1 to 5 do
begin
read(x);
ans := 0;
while (x > 0) do
begin
ans := ans * 10 + (x mod 10);
x := x div 10;
end;
write(ans, ' ');
end;
writeln;
end.
----------------------------
Файл решения прикреплён.