для каждого числа будем убирать последнюю цифру, пока число не станет нулём. при этом для очередной последней цифры ответ умножаем на 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.
файл решения прикреплён.
Поделитесь своими знаниями, ответьте на вопрос:
пока текущее число больше нуля, увеличиваем счётчик количества цифр и отбрасываем последнюю цифру.
код (pascal)var
x, i, ans: integer;
procedure digitcount(k: integer; var c: integer);
begin
c : = 0;
while (k > 0) do
begin
c : = c + 1;
k : = k div 10;
end
end;
begin
for i : = 1 to 5 do
begin
read(x);
digitcount(x, ans);
writeln(ans);
end;
end.
файл решения прикреплён (1).
p.s. условие позволяет свести её решение к нахождению длины каждой из пяти введённых строк. такой вариант решения тоже прикреплён (2).