import java.io.PrintWriter; import java.io.BufferedReader; import java.io.InputStreamReader; public class Factorial { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(System.out, true); out.print("Please enter a number: "); out.flush(); try { int n = Integer.parseInt(in.readLine()); printFactorialExpression(out, n); out.print(" = "); out.println(factorial(n)); } catch (Exception e){ out.println("Sorry,that is not a number."); }//catch System.exit(0); // Only end program in main() } // main(String[]) public static void printFactorialExpression(PrintWriter out, int n) { if (n == 1) { out.print(1); } else { out.print (n + " * ") ; printFactorialExpression(out, n-1); } } // printFactorialExpression(PrintWriter, int) public static long factorial(int n) { if (n == 1) { return 1; } else { return n * factorial(n-1); } } // factorial(int) } // class Factorial