Укажите все целые чсла, которые увеличатся на 20%, если их цифры записать в обратном порядке.
Решение в лоб (в 32-битной среде получается бяка ).
program Rev6_5;
var
i, j, t: Integer;
begin
i := 0;
repeat
t := 0;
j := i;
while j <> 0 do
begin
t := t * 10 + j mod 10;
j := j div 10;
end;
if (6 * i = 5 * t) then Writeln(i);
Inc(i);
until i = 0;
end.
Насчёт переполнения при умножении ты прав (не доглядел, хотя, результат вычислений не меняется ) По поводу отрицательных чисел, вопрос спорный - если применять правило увеличения на 20% как для положительных (6 * n / 5), то всё работает
program Rev6_5;
var
i, j: Integer;
t: LongInt;
begin
i := 0;
repeat
t := 0;
j := i;
while j <> 0 do
begin
t := t * 10 + j mod 10;
j := j div 10;
end;
if 6 * LongInt(i) = 5 * t then Writeln(i);
Inc(i);
until i = 0;
Writeln;
end.
А почему первым числом выводится 0 ?
В коде выше t должно быть LongInt (исправил).