cel?2008:
marcelo.bellissimo:
Tenta isso:
int intcontador = 1, fat, valor;
valor = Integer.parseInt(JOptionPane.showInputDialog(null,"Entre numero", "entrada", JOptionPane.INFORMATION_MESSAGE));
fat = 1;
String result = "o fatorial de " + valor + " é :";
while (intcontador <= valor) {
fat = fat + (fat * (valor - 1) );
valor--;
}
JOptionPane.showMessageDialog(null, result + fat, "Resultado", JOptionPane.INFORMATION_MESSAGE);
Valeu xara!
É isso mesmo que eu queria, seria pedir demais pra vc fazer o teste de mesa desse código, pra eu entender melhor, "Se possível é claro", pois tentei fazer e não entendi muito bem.
Sem mais Obrigado
Marcelo.
Bem, não tem muito segredo, é só seguir a teoria do Fatorial... o Fatorial de N é o produto de todos os números inteiros, positivos, menores ou igual á N... isso implica que o Fatorial de 0 = 1 ... aliás, fatorial se representa por !...
Passos:
- Pegar um valor do usuário(deve-se verificar se esse valor é positivo, pois não existe fatorial de número negativo), exemplo
3;
valor = Integer.parseInt(JOptionPane.showInputDialog(null,"Entre numero", "entrada", OptionPane.INFORMATION_MESSAGE));
- O fatorial de 3, por definição, é o fatorial de 2 (3-1) multiplicado por 3:
n! = n * (n-1)! ;
- Repetir isso até atingir 1;
while (intcontador <= valor) {
// valor = 3
fat = fat + (fat * (valor - 1) ); // fat => 1 + (1 x (3-1) ) => 1 + (1 x (2) ) => 1 + 2 => 3
valor--;
// valor = 2
fat = fat + (fat * (valor - 1) ); // fat => 3 + (3 x (2-1) ) => 3 + (3 x (1) ) => 3 + 3 => 6
valor--;
// valor = 1
fat = fat + (fat * (valor - 1) ); // fat => 6 + (6 x (1-1) ) => 6 + (6 x (0) ) => 6 + 0 => 6
valor--;
// fim do while
}
Não sei se ficou bom meu teste de mesa, seria mais facil fazer num papel! :D