El problema es que has mezclado dos formas de calcular el factorial.
En principio te has decantado por la que sería 3!=3*2*1
sin embargo cuando terminas el segundo for no reinicias el valor de fn, así que estás haciendo
3!=3*2*2!
Si cambias tú código podrías hacer que
2!=2*1!
3!=3*2!
4!=4*3!
sería una forma más eficiente para tu caso.
Código Java:
Ver originalint n = 0;
int fn = 1;
for (int i = 0; i <= 5; i++) {
if(n!=0){
fn = fn * i;
}
System.
out.
println( n
+"! = "+fn
); n++;
}