1
resposta

[Projeto] Resposta

def somar_recursivo(n):
  # 1. Caso base: Se n for 1, a resposta é o próprio 1
  if n == 1:
    return 1
  # 2. Caso Recursivo: n + a soma do numéro anterior (n - 1)
  else:
    return n + somar_recursivo(n - 1)

try:
  numero = int(input("Digite um número: "))
  if numero < 1:
    print("Por favor, digite um número inteiro maior ou igual a 1.")
  else:
    resultado = somar_recursivo(numero)
    print(f"A soma de 1 a {numero} é: {resultado}")
except ValueError:
  print("Por favor, digite um número inteiro válido.")
1 resposta

Olá, Maria! Como vai?

Seu código ficou bem organizado e demonstra corretamente a ideia de recursividade, com um caso base em n == 1 e o caso recursivo somando n + somar_recursivo(n - 1). Também foi uma boa escolha usar try e except ValueError, porque isso deixa o programa mais seguro quando a pessoa digita algo que não pode ser convertido para número inteiro.

Uma dica interessante é testar o código com valores pequenos, como 3, 4 e 5, acompanhando mentalmente cada chamada da função até chegar no caso base. Isso ajuda a visualizar melhor como a recursão “volta” somando os resultados.
Depois desse exercício, você acha mais fácil entender a soma recursiva olhando para o caso base ou para as chamadas que vão diminuindo o valor de n?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!