Recursive Factorial Implementation in Java using Stack
This Java program demonstrates a recursive implementation of the factorial function, which calculates the factorial of a given integer `n`. The program includes a method `fac(int n)` that returns `1` if `n` is `0`, otherwise it calls itself with `n-1` and multiplies the result by `n`. The main method initializes an integer, `x`, by calling `fac(3)`, which computes the factorial of 3. The output is displayed using `System.out.println(x)`. This code exemplifies the use of recursion in programming and its basic functionality.
Recursive Factorial Implementation in Java using Stack
E N D
Presentation Transcript
Minnet (=stacken) public static int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } ..... main(String [] a) { int x; x = fac(3); System.out.println(x); }
Top Minnet (=stacken) ..int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n ? 3
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n ? 3
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n ? 3 ? 2
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n ? 3 ? 2
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) n ? 3 ? 2 ? 1
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) n ? 3 ? 2 ? 1
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) n (ret) n ? 3 ? 2 ? 1 ? 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) n (ret) n ? 3 ? 2 ? 1 ? 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) n (ret) ? 3 ? 2 ? 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) n (ret) ? 3 ? 2 1 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) ? 3 ? 2 1 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) n (ret) ? 3 2 2 1 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) ? 3 2 2 1 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) n (ret) 6 3 2 2 1 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } x (ret) 6 3 2 2 1 1 1 0
Top Minnet (=stacken) int fac(int n) { if (n == 0) return 1; else return fac(n-1) * n; } .. main(..) { int x; x = fac(3); System.out.println(x); } 6 x 6 3 2 2 1 1 1 0