Python.Рекурсия.Двоичные числа
def printBin(num):
if num < 0:
print('-', end='')
num = abs(num)
if num == 0:
return
if num > 0:
printBin(num // 2)
print(num % 2, end="")
Если изначальное число равно 0, то в таком случае функция реторнит None. Что надо сделать,чтоб при вводе 0 реторнился 0, используя лишь метод рекурсии, при этом не используя иных функций?
Ответы (2 шт):
Автор решения: Denis640Kb
→ Ссылка
num = int(input())
def printBin(num):
if num < 0:
print('-', end='')
num = abs(num)
if num == 0:
return num
if num > 0:
printBin(num // 2)
print(num % 2, end="")
print(printBin(num))
Автор решения: becouse
→ Ссылка
Дело в том, что последний вызов нужно делать для числа большего 1. А печать должна быть отложенной, после завершения рекурсивного вызова.
def printBin(num):
if num < 0:
print('-', end='')
num=abs(num)
if num >1:
printBin(num // 2)
print(num % 2, end='')