Вопрос задан 25.07.2018 в 23:39. Предмет Информатика. Спрашивает Героев Никита.

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

цифры числа X в обратном порядке. Например, X=123 Y=321. Примечание. Решите задачу с помощью рекурсивной процедуры. 50 БАЛЛЛЛОВВВВ
0 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.
0 0
Отвечает Perelygin Andrew.
// 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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи с помощью рекурсивной процедуры воспользуемся языком программирования Pascal. Ниже приведен код рекурсивной процедуры, которая будет выполнять данную задачу:

```pascal program ReverseNumber;

var X, Y: integer;

function ReverseDigits(X: integer): integer; begin if X < 10 then ReverseDigits := X else ReverseDigits := (X mod 10) * Trunc(Power(10, Trunc(Log10(X)))) + ReverseDigits(X div 10); end;

begin write('Введите натуральное число X: '); readln(X); Y := ReverseDigits(X); writeln('Число Y, в котором записаны цифры числа X в обратном порядке: ', Y); end. ```

Этот код содержит рекурсивную процедуру `ReverseDigits`, которая принимает на вход натуральное число `X` и возвращает число `Y`, в котором записаны цифры числа `X` в обратном порядке. Рекурсивная часть процедуры выполняется в строке `ReverseDigits := (X mod 10) * Trunc(Power(10, Trunc(Log10(X)))) + ReverseDigits(X div 10);`, где происходит извлечение последней цифры числа `X` с помощью операции деления по модулю и рекурсивный вызов процедуры для оставшейся части числа `X`.

После ввода натурального числа `X` происходит вызов процедуры `ReverseDigits` и вывод результата в виде числа `Y`, в котором записаны цифры числа `X` в обратном порядке.

Таким образом, данный код позволяет решить задачу с помощью рекурсивной процедуры в языке программирования Pascal.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос