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
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
Geografia,
9 meses atrás
Matemática,
9 meses atrás
Filosofia,
9 meses atrás
Matemática,
1 ano atrás
História,
1 ano atrás
Geografia,
1 ano atrás