Escrever uma função recursiva que retorna a soma dos dígitos decimais de um inteiro estritamente positivo n . Por exemplo, para n=1234, a função deve retornar 10 (pois 1+2+3+4=10 ).

Passo 1

O enunciado pede para criar uma função recursiva que, dado um inteiro positivo n, 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 n < 10, há apenas um dígito e a soma é o próprio n (caso base). Caso contrário, extraímos o último dígito por n bmod 10 e aplicamos recursão ao restante dos dígitos calculando lfloor n / 10rfloor.

Passo 2

Em termos de fórmula recursiva, definimos S(n) como a soma dos dígitos de n. Então temos:
S(n) = n, &se n<10, Sl(lfloor n/10rfloorr) + (n bmod 10), &caso contrário á

Passo 3

Com essa definição, para n=1234:
S(1234) = S(123) + 4 = (S(12) + 3) + 4 = ((S(1) + 2) + 3) + 4 = (1 + 2 + 3) + 4 = 10

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)

Exercícios relacionados