Dado um número n na base decimal, escreva uma função recursiva que converte este número para binário.

Passo 1

O enunciado pede uma função recursiva que receba um número decimal n e retorne sua representação em binário. Vamos usar conceitos de divisão inteira e resto (módulo) por 2, além de uma estrutura recursiva com caso base e passo recursivo.

Passo 2

O caso base da recursão ocorre quando n é menor que 2 (isto é, n=0 ou n=1). Nessas situações não é preciso dividir mais: a representação binária de 0 é “0” e de 1 é “1”.

Passo 3

No passo recursivo, para n>=2, dividimos n por 2 usando divisão inteira e obtemos o quociente e o restante do módulo: o quociente gera os bits mais significativos e o resto ( nbmod2) é o bit menos significativo. A ideia é chamar recursivamente a função para o quociente e, quando essa chamada retornar a string de bits mais significativos, concatenar com o dígito nbmod2.

Passo 4

Agrupando tudo, temos em pseudocódigo (ou Python) uma função que trata o caso base e, caso contrário, chama a si mesma para n//2 e anexa o caractere de nbmod2.

Resposta

def decimal_to_binary(n):
    # Caso base: n é 0 ou 1
    if n < 2:
        return str(n)
    # Passo recursivo: divide por 2 e concatena o resto
    return decimal_to_binary(n // 2) + str(n % 2)

Exercícios relacionados