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)
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)
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.