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='')
→ Ссылка