Answer:
a) The method runs infinitely and causes a StackOverflowError.
// Return the factorial for a specified index
public static long factorial(int n)
{
if (n == 0)
return 1;
else
return n * factorial(n - 1);
}
b) Invoking factorial(2) returns 2.
// Return the factorial (2)
public static long factorial(int 2)
{
if (n == 2)
return 2;
else
return 2 * factorial(3 - 1);
}
c) Invoking factorial(1) returns 1.
// Return the factorial(1)
public static long factorial(int 1)
{
if (n == 1)
return 1;
else
return 1 * factorial(1 - 1);
}
d) Invoking factorial(0) returns 0.
// Return the factorial(0)
public static long factorial(int 0)
{
if (n == 0)
return 0;
else
return 0 * factorial(0 - 1);
}
Explanation: