Паскаль. С клавиатуры вводится натуральное число X. Требуется получить число Y, в котором...

0 голосов
93 просмотров

Паскаль.
С клавиатуры вводится натуральное число X. Требуется получить число Y, в котором записаны цифры числа X в обратном порядке. Например, X=123 Y=321.
Примечание. Решите задачу с помощью рекурсивной процедуры.
50 БАЛЛЛЛОВВВВ


Информатика (37 баллов) | 93 просмотров
0

язык какой

0

Паскаль

0

числа могут быть с любым кол-вом разрядов?

0

да

Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1590 от 03.12.2017
// Внимание! Если программа не работает, обновите версию!

procedure Rvr(var n,nr:BigInteger);
begin
  if n<>0 then begin
    nr:=nr*10+ n mod 10;
    n:=n div 10;
    Rvr(n,nr)
    end
end;

begin
 
  var nr:=BigInteger(0);
  var n:=ReadlnString('Введите натуральное число:').ToBigInteger;
  Rvr(n,nr);
  Writeln(nr)
end.

Пример
Введите натуральное число: 234536406567867348292735385468776123478182736
637281874321677864583537292843768765604635432
(150k баллов)
0 голосов

Var X, Y: longint;

procedure revX(X: longint; var Y: longint);
begin
  if X <> 0 then
  begin
    Y := Y * 10 + (X mod 10);
    revX(X div 10, Y);
  end;
end;

begin
  write('Введите X = ');
  readln(X);
  revX(X, Y);
  writeln(Y);
end.

(9.4k баллов)