Uma das formas de se desenvolver soluções é através de algor...
Uma das formas de se desenvolver soluções é através de algoritmos recursivos. Qual será o valor encontrado em “X” ao fim da execução da rotina principal do código abaixo?
Inteiro função (n){
Se n <= 1 então
retorna 1
senão
retorna função (n-1) * n}
Rotina principal{
X :Inteiro
X recebe função(7)}
- Gabarito Comentado (1)
- Aulas (1)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: D - 5040.
Explicação:
Para resolver esta questão, é necessário compreender o conceito de algoritmos recursivos e a operação de fatorial.
A função apresentada na questão é uma implementação de um cálculo fatorial usando recursão. Vamos analisar a função passo a passo:
Função:
Inteiro função (n){
Se n <= 1 então
retorna 1
senão
retorna função (n-1) * n}
Em termos simples, esta função retorna 1 se n for menor ou igual a 1. Caso contrário, ela chama a si mesma com (n-1) e multiplica o resultado por n. Este é um padrão típico de uma função recursiva que calcula o fatorial de um número.
Vamos calcular o valor de X para função(7):
função(7) = função(6) * 7
função(6) = função(5) * 6
função(5) = função(4) * 5
função(4) = função(3) * 4
função(3) = função(2) * 3
função(2) = função(1) * 2
função(1) = 1
Agora, substituímos os valores de volta para cima, começando com função(1):
função(2) = 1 * 2 = 2
função(3) = 2 * 3 = 6
função(4) = 6 * 4 = 24
função(5) = 24 * 5 = 120
função(6) = 120 * 6 = 720
função(7) = 720 * 7 = 5040
Portanto, o valor de X ao fim da execução será 5040.
Justificativa das Alternativas Incorretas:
A - 120: Essa alternativa corresponde ao valor de função(5), mas não ao de função(7).
B - 720: Essa alternativa corresponde ao valor de função(6), mas não ao de função(7).
C - 40320: Essa alternativa corresponde ao valor de função(8), mas não ao de função(7).
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo