Informática, perguntado por estudanteeee1, 1 ano atrás

Uma função é denominada recursiva quando ela é chamada novamente dentro do seu corpo. O cálculo do fatorial de um número é um exemplo clássico de uso de funções recursivas.

Sua definição matemática é exibida a seguir:

Analise o código da função fatorial a seguir:

1 int fatorial (int x) {
2 if (x <= 0) {
3 return fatorial(0);
4 } else {
5 return x * fatorial(x-1);
6 }
7 }

Considerando o código apresentado, da forma em que está, o código não funciona. Assinale a alternativa que demonstra o que precisa ser corrigido na função, para que o cálculo funcione corretamente:


Alternativa 1:
O teste na linha 2 deve ser trocado de x <= 0 para x = 0.


Alternativa 2:
O retorno da linha 3 deve ser trocado de return fatorial(0) para return 1.


Alternativa 3:
O retorno da linha 5 deve ser trocado de return x * fatorial(x-1) para return x-1.


Alternativa 4:
O valor de retorno da linha 1 deve ser trocado de int para float, por causa do cálculo.


Alternativa 5:
O retorno da linha 5 deve ser trocado de return x * fatorial(x-1) para return fatorial(x-1).

Soluções para a tarefa

Respondido por raqueleliude
2

Olá!




A alternativa correta é: Alternativa 2: O retorno da linha 3 deve ser trocado de return fatorial(0) para return 1. Isso é uma forma de evitar erros de forma que se o número for negativo ou igual a zero ele vai parar o programa e retornar o valor 1.




O Código correto é:

Public class Fatorial {

Public int fatorialRecursivo (int x){

If (x <= 0)

return 1;

return x fatorialRecursivo ( x – 1 );

}

}




Espero ter ajudado, bons estudos.


thomassp18p6oif0: exatamente porem, não é por causa disso que você falou não, é simplesmente para o programar fazer a função recursiva até chegar no valor 1 ai ele retorna todos os valores na função!!! :)
Perguntas interessantes