4. Identify the error in this recursive function to find factorial:
int factorial(int n) {
if (n == 1) return 1;
else return n * factorial(n + 1);
}
medium
A. Recursive call increases n, causing infinite recursion
B. Function should return void, not int
C. Missing return statement in base case
D. Base case should be n == 0, not n == 1
Solution
Step 1: Analyze recursive call
The function calls factorial(n + 1), which increases n each time, never reaching base case.
Step 2: Identify infinite recursion cause
Because n grows, base case n == 1 is never met, causing infinite recursion.
Final Answer:
Recursive call increases n, causing infinite recursion -> Option A
Quick Check:
Recursive call must reduce n [OK]
Hint: Recursive calls must reduce input to reach base case [OK]
Common Mistakes:
Increasing n instead of decreasing in recursion
Wrong base case value
Ignoring infinite recursion risk
5. You want to write a recursive function to compute the nth Fibonacci number where fib(0) = 0 and fib(1) = 1. Which of the following correctly defines the base cases and recursive case?
hard
A. if (n == 0) return 0; if (n == 1) return 1; else return fib(n - 1) + fib(n - 2);
B. if (n == 1) return 0; if (n == 2) return 1; else return fib(n - 1) + fib(n - 2);
C. if (n <= 1) return n; else return fib(n + 1) + fib(n - 2);
D. if (n == 0) return 1; if (n == 1) return 1; else return fib(n - 1) + fib(n - 2);
Solution
Step 1: Identify correct base cases for Fibonacci
By definition, fib(0) = 0 and fib(1) = 1 are base cases.
Step 2: Check recursive case correctness
Recursive case sums fib(n-1) and fib(n-2), matching Fibonacci definition.
Final Answer:
if (n == 0) return 0; if (n == 1) return 1; else return fib(n - 1) + fib(n - 2); -> Option A
Quick Check:
Fibonacci base and recursive cases match definition [OK]
Hint: Base cases fib(0)=0, fib(1)=1; recursive sums previous two [OK]
Common Mistakes:
Wrong base case values
Increasing n in recursive calls
Returning wrong values for base cases
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.