I am new to recursion and I found the following Java problem:

Write a function that gets an integer n, and prints the numbers 1!,2!,3!,…,n!.

Here is what I did and I would like to know if this is the simplest solution (I am not sure because I used “for” loop to do it).

public static void Print(int n) { if (n == 0) { System.out.print("1"); } else { int temp = 1; for (int i = 1; i <= n, i++) { temp = temp * i; } Print(n-1); System.out.print(temp); } }

By the way, the previous exercise was to write a function that gets an integer n and returns n!, using recursion. Do you think I need to use it here and print it instead of calculating temp (n!) and print it? Thanks!

## Advertisement

## Answer

Here is a simple recursive solution:

public static long factorial(long n) { if(n == 0 || n == 1) { System.out.print(1 + " "); return 1; } long result = n * factorial(n - 1); System.out.print(result + " "); return result; }