[RESOLVIDO]Dúvida sobre esse código sobre fatorial
3 respostas
Super_Fabio
tenho esse código pronto para descobrir os fatoriais dos números de 1 a 10 , só que não intendo essa lógica , um caso é que fatorial = 1 e i = 1 se resolveu colocando fatorial *= i ,
ou seja esse * no nada diz o que?
publicclassEx4{publicstaticvoidmain(String[]args){intfatorial=1;for(inti=1;i<=10;i++){fatorial*=i;System.out.println("O fatorial de "+i+" e igual a "+fatorial);}}}
Lendo isso: fatorial recebe o valor atual do fatorial vezes o i
Super_Fabio
Ok mas se fatorial = 1 e i fica aumentando até 10 então não ia descobrir o fatorial pois assim 1 = 1 * i , se fosse de quatro 1 = 1 * 4 que é 4 , isso não é fatorial , e ai?
ArthurBragaa
Fábio,
A variável fatorial funciona como um acumulador.
A cada iteração(for) fatorial armazena o que tinha antes e multiplica pelo valor de i.
Por exemplo Iteração 1:
intfatorial=1;for(inti=1;i<=10;i++){fatorial*=i;//fatorial *= 1//fatorial vale 1 aqui; System.out.println("O fatorial de "+i+" e igual a "+fatorial);}//iteração 2 fatorial vale 1 e i vale 2for(inti=2;i<=10;i++){fatorial*=i;//fatorial *= 2 //fatorial vale 2 aqui System.out.println("O fatorial de "+i+" e igual a "+fatorial);}//iteração 3 fatorial vale 2 e i vale 3for(inti=3;i<=10;i++){fatorial*=i;//fatorial *= 3 //fatorial vale 6 aqui System.out.println("O fatorial de "+i+" e igual a "+fatorial);}
E assim por diante até chegar a 10 iterações.
A variável fatorial é um acumulador.