C. инверсия 0 имя входного файла стандартный ввод имя выходного файла стандартный вывод ограничение по времени 2 секунды ограничение по памяти 64 мегабайта необходимо реализовать функцию, которая для заданного целого числа меняет порядок цифр в нем на обратный. продемонстрировать работу процедуры на 5 целых числах. формат входных данных с клавиатуры вводятся через пробел 5 целых положительных чисел, не превосходящих 109. формат выходных данных необходимо вывести через пробел 5 чисел — измененные исходные числа. примечания если у нового числа есть ведущие нули — выводить их не нужно. примеры входные данные выходные данные 31 1 294 421 1122 13 1 492 124 2211

osipovalex1969 osipovalex1969    3   01.10.2019 10:20    2

Ответы
misterstepash misterstepash  09.10.2020 07:34
Алгоритм решения

Для каждого числа будем убирать последнюю цифру, пока число не станет нулём. При этом для очередной последней цифры ответ умножаем на 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.

Файл решения прикреплён.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика