<h3>Алгоритм решения</h3>
Для каждого числа будем убирать последнюю цифру, пока число не станет нулём. При этом для очередной последней цифры ответ умножаем на 10 и прибавляем к нему эту цифру.
Для одного числа алгоритм будет выглядеть так:
while x > 0:
ans = ans * 10 + (x mod 10)
x = x // 10
Где <em>x </em>- заданное число, <em>ans </em>- ответ на задачу (перевёрнутое число), <em>mod </em>- операция получения остатка, <em>// </em>- операция целочисленного деления.
Формально, <em>x mod 10 </em>возвращает последнюю цифру числа <em>x </em>("остаток от деления x на 10"), а <em>x // 10 возвращает число </em>x <em>без последней цифры ("разделить x на 10 и отбросить остаток").</em>
<h3>Решение (Pascal)</h3>
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.
----------------------------
Файл решения прикреплён.
число 12.( интервалы с 10-18, 10 -12, 12)
Чисто теоретически, таблица состоит из графов.
Воспользуемся методом потетрадного перевода из двоичной системы в шестнадцатеричную. Запишем 3 группы по 4 двоичных разряда в каждой. Наименьшее число будет содержать 7 нулей в старших разрядах, а наибольшее - в младших. Каждая группа переводится как цифра в шестнадцатеричную систему.
0000 0001 1111(2) = 01F(16) = 31(10) - наименьшее число.
1111 1000 0000(2) = F80(16) = 3968(10) - наибольшее число.