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);[/code][/quote]
[quote]
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.
[/quote][/quote]
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!
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);[/code][/quote]
[quote]
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.
[/quote][/quote]
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! [/quote]
public class Principal {
public static void main(String[] args) {
System.out.println(calculaFatorial(5));
}
private static int calculaFatorial(int valor){
int result = valor;
while (valor > 1) {
result *= (valor-1);
valor--;
}
// Segunda Maneira
// int result = 0;
// for (int i = valor ; i > 0 ; i-- ) {
// if (i == valor) result = valor;
// else result *= i;
// }
return result;
}
}