Carregando...
Carregando...
Ajude a melhorar a plataforma
Na programação, o conceito de recursão oferece uma abordagem poderosa para solucionar problemas dividindo-os em subproblemas mais simples. Um exemplo clássico de aplicação da recursão é a função vertical que exibe os dígitos de um número verticalmente:
def vertical(n):
if n < 10:
print(n)
else:
vertical(n//10) # função é chamada com resultado da divisão inteira de n por 10
print(n%10)
Ao abordar esse problema, foi importante identificar [Preencher 1], que define quando a função deve parar de chamar a si mesma, e [Preencher 2], que progressivamente aproxima a função da condição de parada.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
🎓 Gabarito Comentado (AVA):
A alternativa "1 - o caso básico; 2 - a etapa recursiva" é correta, pois caso básico refere-se ao cenário em que a recursão deve parar, uma condição essencial para evitar chamadas recursivas infinitas. Na função exemplificada, o caso básico é quando o número tem apenas um dígito, ou seja, o número é menor do que 10. Neste caso, ele pode ser exibido diretamente sem necessidade de mais recursão. A "etapa recursiva" é o processo pelo qual a função chama a si mesma com argumentos modificados de forma a se aproximar do caso básico. No exemplo, função é chamada com resultado da divisão inteira de n por 10. Essa etapa é fundamental para quebrar o problema original em subproblemas mais simples, movendo-se progressivamente em direção ao caso básico.
A alternativa "1 - o loop infinito; 2 - a condição de saída" é incorreta, pois o conceito de "loop infinito" não se aplica a funções recursivas e a expressão "condição de saída", em geral, é aplicada a funções iterativas.
A alternativa "1 - o ponto de partida; 2 - o loop iterativo" é incorreta, pois pois ambos os conceitos não se aplicam a funções recursivas.
A alternativa "1 - a condição de erro; 2 - a solução direta" é incorreta, pois ao resolver problemas recursivos como o exemplificado não é dada ênfase para a condição de erro, além disso, a expressão " solução direta" não se associa a aproximação de uma função recursiva à sua condição de parada.
A alternativa "1 - o caso básico; 2 - a chamada iterativa" é incorreta, pois embora a primeira lacuna seja preenchida corretamente com "o caso básico", a segunda lacuna não pode ser preenchida com "chamada iterativa" pertinente a funções iterativas. A recursão é caracterizada por chamadas recursivas, não iterativas.