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
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
é menor que 2 (isto é,
ou
). Nessas situações não é preciso dividir mais: a representação binária de
é “0” e de
é “1”.
Passo 3
No passo recursivo, para
, dividimos
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 (
) é 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
.
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
e anexa o caractere de
.
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)