1
resposta

Não entendi o código do instrutor, mas fiz dessa forma e funcionou :)

numero=int(input('Digite um número: '))

def funcao_recursiva(num):
    inicio=1
    resultado= sum(range(inicio,num+1))
    print(f' a soma de {inicio} até {num} é igual a {resultado}')
result=funcao_recursiva(numero)
1 resposta

Olá, Andressa!

Parabéns por resolver o problema e por compartilhar sua solução! Sua solução funciona perfeitamente para calcular a soma dos números! A confusão que você teve com o código do instrutor provavelmente está no conceito que o exercício queria explorar: a recursividade.

Abaixo, explico a diferença entre as duas abordagens.

def funcao_recursiva(num):
    inicio = 1
    # O comando sum() + range() faz o cálculo de forma imediata e eficiente
    resultado = sum(range(inicio, num + 1)) 
    print(f' a soma de {inicio} até {num} é igual a {resultado}')

Você usou as funções prontas do Python (sum e range) que, internamente, repetem o processo de soma, mas para quem escreve o código, o resultado é instantâneo. Em um projeto real, esta seria a melhor escolha!

A Abordagem do Instrutor: Recursividade

O exercício focava no conceito de Recursividade. Uma função recursiva resolve um problema chamando a si mesma repetidamente, mas sempre com um problema menor, até chegar a uma condição de parada muito simples. A soma dos números é definida recursivamente como:

Soma(n) = n + Soma(n - 1)

Isto significa que a soma de 5 é 5 somado à Soma de 4, e a Soma de 4 é 4 somado à Soma de 3, e assim por diante, até chegar a 1.Para a soma, um código recursivo seria parecido com este:

def soma_recursiva(n):
    # Condição de Parada (Base Case): 
    # Quando chega em 1, a soma para.
    if n == 1:
        return 1
    # Passo Recursivo: 
    # Chama a função novamente com o número anterior (n-1).
    else:
        return n + soma_recursiva(n - 1)

Resumo: Sua função é perfeita para calcular o resultado. A função do instrutor (recursiva) é ideal para praticar o conceito de recursividade, que é fundamental para problemas mais complexos como travessia de estruturas de dados.