Описание задачи
Программа принимает число и переводит его в двоичную систему счисления с использованием рекурсии.
Решение задачи
- Задаем рекурсивную функцию, которая может принимать в качестве аргумента число.
- Принимаем от пользователя число и передаем его в качестве аргумента в рекурсивную функцию.
- В самой функции в качестве базового условия рекурсии задаем равенство входящего аргумента нулю. В этом случае функция возвращает переменную, в которую до начала работы функции был помещен пустой список.
- В противном случае в список добавляется остаток от деления аргумента на
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

