public class RecursivelyPrintFactorial
1: //RecursivelyPrintFactorial.java
3: import java.util.Scanner;
5: public class RecursivelyPrintFactorial
6: {
7: public static void printFactorial
8: (
9: int factCounter,
10: int factValue
11: )
12: {
13: int nextCounter;
14: int nextValue;
16: if (factCounter == 0) // Base case: 0! = 1
17: {
18: System.out.println("1");
19: }
20: else if (factCounter == 1) // Base case: Print 1 and result
21: {
22: System.out.println(factCounter + " = " + factValue);
23: }
24: else // Recursive case
25: {
26: System.out.print(factCounter + " * ");
27: nextCounter = factCounter - 1;
28: nextValue = nextCounter * factValue;
30: /* Your solution goes here */
31: printFactorial(nextCounter, nextValue);
32: }
33: }
35: public static void main (String [] args)
36: {
37: Scanner scnr = new Scanner(System.in);
38: int userVal;
40: userVal = scnr.nextInt();
41: System.out.print(userVal + "! = ");
42: printFactorial(userVal, userVal);
43: }
44: }