Alternativa A
Para identificar a resposta correta, devemos analisar a estrutura lógica do código apresentado nas opções, focando no conceito de recursividade.
Análise da Questão
O enunciado solicita um subalgoritmo recursivo para calcular uma somatória. Uma função recursiva precisa obrigatoriamente de dois elementos principais:
- Caso Base: Uma condição que interrompe a chamada da função (evita recursão infinita).
- Passo Recursivo: A chamada da própria função com um parâmetro modificado (geralmente reduzindo o problema).
Vamos examinar as alternativas:
Por que as Alternativas D e E estão incorretas?
As opções D e E utilizam estruturas de repetição como para (loop for), definidas por variáveis K e L. Isso caracteriza uma abordagem iterativa, não recursiva. O enunciado pede explicitamente um algoritmo recursivo.
Por que a Alternativa C está incorreta?
Na alternativa C, a condição é se N > 0 entao retorne [...].
Se você chamar a função com um número positivo (ex: 5), a condição será verdadeira imediatamente, e a função retornará um valor sem nunca se chamar novamente (func(N-1)). Isso não realiza o cálculo da somatória, pois a recursão nunca ocorre.
Por que a Alternativa A é a correta?
A alternativa A apresenta a estrutura clássica de uma soma recursiva:
- Condição de parada:
se N = 0 entao. O contador chega a zero e para. - Chamada recursiva:
retorne N + func(N-1). A função chama a si mesma subtraindo 1 do valor atual.
Isso permite que a função "desça" de um número inicial até chegar a zero, somando os valores no caminho.
Soma(N) = N + Soma(N-1)
A alternativa B também é recursiva, mas usa se N < 0 entao. Embora possível, a convenção padrão para somatórios de inteiros naturais (contagem regressiva) utiliza N = 0 ou N = 1 como ponto final, tornando a Alternativa A a representação mais correta e didática para este contexto.
Conclusão
A estrutura que combina corretamente o caso base (N = 0) com o passo recursivo (N + func(N-1)) é a Alternativa A.