Uma das formas de se desenvolver soluções é através de algor...

Próximas questões
Com base no mesmo assunto
Q2802240 Arquitetura de Software

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

Alternativas

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