Escrever uma função recursiva que retorna a soma dos dígitos decimais de um inteiro estritamente positivo n . Por exemplo, para
, a função deve retornar 10 (pois
).
Passo 1
O enunciado pede para criar uma função recursiva que, dado um inteiro positivo
, retorne a soma dos seus dígitos na base decimal. Vamos usar conceitos de recursão e operações de resto e divisão inteira por 10 para separar dígitos.
A ideia central da recursão é identificar o caso base e o caso recursivo. Quando
, há apenas um dígito e a soma é o próprio
(caso base). Caso contrário, extraímos o último dígito por
e aplicamos recursão ao restante dos dígitos calculando
.
Passo 2
Em termos de fórmula recursiva, definimos
como a soma dos dígitos de
. Então temos:
Passo 3
Com essa definição, para
:
Resposta
Uma possível implementação em Python é:
def soma_digitos(n):
# Caso base: só um dígito
if n < 10:
return n
# Caso recursivo: soma último dígito com soma dos dígitos restantes
return soma_digitos(n // 10) + (n % 10)
# Caso base: só um dígito
if n < 10:
return n
# Caso recursivo: soma último dígito com soma dos dígitos restantes
return soma_digitos(n // 10) + (n % 10)