C. Инверсия 0Имя входного файластандартный вводИмя выходного файластандартный

C. Инверсия
0
Имя входного файла
стандартный ввод
Имя выходного файла
стандартный вывод
Ограничение по медли
2 секунды
Ограничение по памяти
64 мб
Нужно воплотить функцию, которая для данного целого числа меняет порядок цифр в нем на обратный. Показать работу процедуры на 5 целых числах.

Формат входных данных
С клавиатуры вводятся через пробел 5 целых положительных чисел, не превосходящих 109.
Формат выходных данных
Нужно вывести через пробел 5 чисел модифицированные исходные числа.
Примечания
Если у нового числа есть водящие нули выводить их не необходимо.

Образцы
входные данные выходные данные
31 1 294 421 1122
13 1 492 124 2211

Задать свой вопрос
1 ответ

Метод решения

Для каждого числа будем убирать заключительную цифру, пока число не станет нулём. При этом для очередной заключительней числа ответ умножаем на 10 и добавляем к нему эту цифру.

Для 1-го числа алгоритм будет смотреться так:

while x gt; 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 gt; 0) do

   begin

     ans := ans * 10 + (x mod 10);

     x := x div 10;

   end;

   write(ans, ' ');

 end;

 writeln;

end.

----------------------------

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

, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт