C. Инверсия 0Имя входного файластандартный вводИмя выходного файластандартный
C. Инверсия
0
Имя входного файла
стандартный ввод
Имя выходного файла
стандартный вывод
Ограничение по медли
2 секунды
Ограничение по памяти
64 мб
Нужно воплотить функцию, которая для данного целого числа меняет порядок цифр в нем на обратный. Показать работу процедуры на 5 целых числах.
Формат входных данных
С клавиатуры вводятся через пробел 5 целых положительных чисел, не превосходящих 109.
Формат выходных данных
Нужно вывести через пробел 5 чисел модифицированные исходные числа.
Примечания
Если у нового числа есть водящие нули выводить их не необходимо.
Образцы
входные данные выходные данные
31 1 294 421 1122
13 1 492 124 2211
Метод решения
Для каждого числа будем убирать заключительную цифру, пока число не станет нулём. При этом для очередной заключительней числа ответ умножаем на 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.
----------------------------
Файл решения прикреплён.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.
Математика.
Химия.
Русский язык.
Разные вопросы.
Разные вопросы.