Gente, um probleminha...
to programando em Java.. mas me surgiu um probleminha...
o exercício é o seguinte:
"Faça um algoritmo que leia um vetor A[10].
Preencha então um vetor B[10] com o fatorial de cada valor de A
respeitando as posições, caso o referido valor for positivo ou nulo.
Deixe os valores negativos intactos. Mostre o vetor"
pois eh... meu problema é que eu não consigo descobrir o que eh fatorial, e como aplicálo no programa, pois o resto ta todo resolvido! não consigo encaixar uma fórmula nesse caso...
se alguem puder me ajudar, desde ja agradeço!
obrigado
Copyright © 2024 QUIZLS.COM - All rights reserved.
Answers & Comments
Verified answer
Amigo, o factorial e definido a custa dele proprio, trata-se, entao, de uma definicao recursiva. Consideremos 3!:
3!=3*2! (pela segunda linha da definicao)
=3*2*1! (pela segunda linha da definicao)
=3*2*1*0! (pela segunda linha da definicao)
=3*2*1*1 (pela segunda linha da definicao)
=6
Note que o valor com que se invoca o factorial vai diminuindo ate chegar a zero, altura em que a recursividade termina.
Agora vamos calcular factorial de um numero em Java.
public class Factorial
{
public static int factorial (int n)
{
if (n == 0)
return 1;
else
return factorial (n-1)*n;
}
public static void main (String[]args)
{
System.out.println(factorial(6));
}
}
A sequencia da chamada e valores de retorno da funcao factorial estam aqui:
factorial(6) chama factorial (5)
factorial(5) chama factorial (4)
factorial(4) chama factorial (3)
factorial(3) chama factorial (2)
factorial(2) chama factorial (1)
factorial(1) chama factorial (0)
factorial(0) retorna 1
factorial(1) retorna 1 (1x1)
factorial(2) retorna 2 (2x1)
factorial(3) retorna 6 (3x2)
factorial(4) retorna 24 (4x6)
factorial(5) retorna 120 (5x24)
factorial(6) retorna 720 (6x120)