Описание задачи
Программа принимает число и переводит его в двоичную систему счисления с использованием рекурсии.
Решение задачи
- Задаем рекурсивную функцию, которая может принимать в качестве аргумента число.
- Принимаем от пользователя число и передаем его в качестве аргумента в рекурсивную функцию.
- В самой функции в качестве базового условия рекурсии задаем равенство входящего аргумента нулю. В этом случае функция возвращает переменную, в которую до начала работы функции был помещен пустой список.
- В противном случае в список добавляется остаток от деления аргумента на
2
, а затем снова вызывается эта же функция, в которую в качестве аргумента передается результат целочисленного деления на2
. - Далее мы переворачиваем список и выводим его на экран при помощи цикла
for
. - Конец
Исходный код
Ниже дан исходный код, который переводит число в двоичную систему счисления при помощи рекурсии. Результаты работы программы также даны ниже.
l = [] def convert(b): if (b == 0): return l dig = b % 2 l.append(dig) convert(b // 2) a = int(input("Введите число: ")) convert(a) l.reverse() print("Двоичная форма числа:") for i in l: print(i)
Объяснение работы программы
- Создается переменная
l
, которая инициируется пустым списком. - Определяется рекурсивная функция
convert()
, которая в качестве аргумента принимает число. - В самой функции определяется базовое условие рекурсии. Оно состоит в равенстве аргумента функции
0
. В этом случае функция возвращает сформированный рекурсивным образом списокl
. - В противном случае каждая цифра числа переводится в двоичный вид и добавляется в список в виде
0
или1
. А функция вызывается еще раз с аргументом, который был получен из первоначального аргумента посредством целочисленного деления на2
. - Затем список инвертируется посредством функции
reverse()
и выводится на экран с помощью циклаfor
.
Результаты работы программы
Пример 1: Введите число: 20 Двоичная форма числа: 1 0 1 0 0 Пример 2: Введите число: 7 Двоичная форма числа: 1 1 1