int n = 4;
while (n >=1){
n = n*(n-1);
n = n-1;
System.out.println (n);
}
Se n = 4,então n = n*(n-1); vai por n = 12 mas n = n-1; muda o valor para 11.
Volta para o while e n = n*(n-1); dá n = 110 com n = n-1; passa a 109.
E assim sucessivamente…
Tu precisas de DUAS coisas: contar de 4 até 1 e multiplicar os números.
Estou tentando criar um programa para exibir o fatorial de um numero X…
Porém não obtive sucesso com o Código desenvolvido:
[code]class Fatorial{
public static void main (String args[]){
int n = 4;
while (n >=1){
n = n*(n-1);
n = n-1;
System.out.println (n);
}
}
}[/code]
Será que alguém pode me ajudar…?[/quote]
Não precisa de dois laços.
Pense no seguinte:
O resultado parcial (que na última iteração vira resultado final) do fatorial é uma coisa. A quantidade de iterações, é outra coisa totalmente distinta. Do jeito que você está fazendo, está utilzando a mesma variável (n) para fazer as duas coisas. Use variáveis distintas para cada coisa para resolver o problema.
Usando o comentário explicativo do regis_hideki como base, ao começar a programar, utilize quantas variáveis achar necessário para resolver o problema e com o tempo vc vai ganhando experiência e “enxugando” mais seus códigos.
so que vc fez um loop que diz que While(n>=1)
ou seja enquanto n>=1 repita!
isso da loop infinito pois n nunca vai ser menor ou igual a 1
pode apagar isso e o resto pode deixar como está:
while esta certo.
e n=n-1 tambem esta certo.
pq n=4-1=3
e ele vai repetir enquanto(while) n>=1
lembrando que o fatorial de zero é 1 entao se for o caso teria que colocar uma condicional por ai mas como ja determinasse qual seria o numero para tirar o fatorial então ta de boa