Вывести двоичное представление натурального числа, используя рекурсию - PascalABC.NET
Формулировка задачи:
Вывести двоичное представление данного натурального числа используя рекурсивную подпрограмму.
Я что-то пытался написать, вышло это.
Листинг программы
- var x,i:integer;
- s:array [1..16] of integer;
- function rec(x:integer):integer;
- var i:integer;
- begin
- if x<>0 then
- begin
- i:=i+1;
- s[i]:=(x mod 2);
- x:=rec(x div 2);
- end;
- end;
- begin
- readln (x);
- rec(x);
- for i:=i downto 1 do
- write (s[i]);
- end.
Решение задачи: «Вывести двоичное представление натурального числа, используя рекурсию»
textual
Листинг программы
- procedure Binary(n:integer);
- begin
- if n>1 then Binary(n div 2)else write('');
- write(n mod 2);
- end;
- var N:word;
- s:string;
- begin
- write('Введите целое неотрицательное число n=');
- readln(n);
- Binary(n);
- end.
Объяснение кода листинга программы
- Объявлена процедура
Binary
с параметромn:integer
- В процедуре используется рекурсия для вычисления двоичного представления числа
n
- Если
n
больше 1, то вызывается рекурсивная функцияBinary(n div 2)
для вычисления двоичного представления половины числаn
- Затем вызывается функция
write(n mod 2)
для вывода остатка от деленияn
на 2 - В основной части программы объявлены переменные
N:word
иs:string
- Пользователю предлагается ввести неотрицательное целое число
n
- После ввода числа, вызывается функция
Binary(n)
для вычисления и вывода двоичного представления числаn
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д