En esta solución me adelante un poco al tema y decidí hacerlo con recursividad, además también agregue una forma de hacerlo sin recursividad. :D
public class Pruebas {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.println("Ingrese un numero: ");
int num = input.nextInt();
System.out.println("El factorial de: "+num+" es: "+factorial(num));
/// Otra forma de hacerlo seria:
int factorial = 1;
for (int i = 1; i <= num; i++) {
factorial *= i;
}
System.out.println("\nEl factorial de: "+num+" es: "+factorial);
}
///Creo una funcion de tipo static para poder ser utilizada dentro de la misma clase
public static int factorial(int n){
if (n == 0) {
n = 1;
} else {
n *= factorial(n-1);
}
///La funcion es de estilo recursiva, hasta que no llegue al caso base no deja de llamarse
return n;
}
}