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.
Файл решения прикреплён.