Bird
Raised Fist0
DSA C++programming~5 mins

Recursion Base Case and Recursive Case in DSA C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the base case in recursion?
The base case is the condition that stops the recursion. It prevents infinite calls by providing a simple answer without further recursion.
Click to reveal answer
beginner
What is the recursive case in recursion?
The recursive case is the part where the function calls itself with a smaller or simpler input, moving towards the base case.
Click to reveal answer
intermediate
Why do we need both base case and recursive case in a recursive function?
The base case stops the recursion to avoid infinite loops, and the recursive case breaks the problem into smaller parts to solve it step by step.
Click to reveal answer
beginner
Consider this code snippet:
int factorial(int n) { if (n == 0) return 1; else return n * factorial(n - 1); }

Identify the base case and recursive case.
Base case: if (n == 0) return 1;
Recursive case: return n * factorial(n - 1);
Click to reveal answer
beginner
What happens if a recursive function does not have a base case?
The function will keep calling itself forever, causing a stack overflow error because it never stops.
Click to reveal answer
What is the purpose of the base case in recursion?
ATo print the result
BTo call the function again
CTo increase the input size
DTo stop the recursion
In the recursive case, the function usually calls itself with:
AA larger input
BThe same input
CA smaller or simpler input
DNo input
What will happen if a recursive function lacks a base case?
AIt will run once and stop
BIt will cause infinite recursion and crash
CIt will return zero
DIt will print an error message
In the factorial function, what is the base case?
An == 0
Bn == 1
Cn > 0
Dn < 0
Which part of recursion breaks the problem into smaller parts?
ARecursive case
BReturn statement
CBase case
DInput validation
Explain the roles of the base case and recursive case in a recursive function.
Think about how recursion stops and how it progresses.
You got /3 concepts.
    Describe what happens if a recursive function does not have a base case.
    Consider what stops recursion normally.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the purpose of the base case in a recursive function?
      easy
      A. To print the result of the recursion
      B. To call the function again with a smaller input
      C. To increase the input size for the next call
      D. To stop the recursion and prevent infinite calls

      Solution

      1. Step 1: Understand recursion basics

        Recursion works by calling itself repeatedly until a stopping point is reached.
      2. Step 2: Identify the role of base case

        The base case stops further recursive calls to avoid infinite loops.
      3. Final Answer:

        To stop the recursion and prevent infinite calls -> Option D
      4. Quick Check:

        Base case = stop recursion [OK]
      Hint: Base case stops recursion to avoid infinite loops [OK]
      Common Mistakes:
      • Confusing base case with recursive case
      • Thinking base case calls recursion again
      • Ignoring the need for a stopping condition
      2. Which of the following is the correct syntax for a base case in this recursive function to calculate factorial?
      int factorial(int n) {
        if (___) return 1;
        return n * factorial(n - 1);
      }
      easy
      A. n > 0
      B. n == 0
      C. n == 1
      D. n < 0

      Solution

      1. Step 1: Identify factorial base case

        Factorial of 0 is defined as 1, so base case is when n == 0.
      2. Step 2: Check options for correct base case

        n == 0 matches n == 0, which returns 1 stopping recursion correctly.
      3. Final Answer:

        n == 0 -> Option B
      4. Quick Check:

        Factorial base case = n == 0 [OK]
      Hint: Factorial base case is n equals zero [OK]
      Common Mistakes:
      • Using n > 0 as base case causes infinite recursion
      • Using n < 0 which is invalid for factorial
      • Confusing base case with recursive case
      3. What will be the output of the following code?
      int sum(int n) {
        if (n == 0) return 0;
        return n + sum(n - 1);
      }
      
      int main() {
        std::cout << sum(3);
        return 0;
      }
      medium
      A. 0
      B. 3
      C. 6
      D. Error

      Solution

      1. Step 1: Trace recursive calls for sum(3)

        sum(3) = 3 + sum(2), sum(2) = 2 + sum(1), sum(1) = 1 + sum(0), sum(0) = 0.
      2. Step 2: Calculate total sum

        sum(3) = 3 + 2 + 1 + 0 = 6.
      3. Final Answer:

        6 -> Option C
      4. Quick Check:

        Sum 1 to 3 = 6 [OK]
      Hint: Sum from n to 0 adds all numbers [OK]
      Common Mistakes:
      • Returning n instead of n + sum(n-1)
      • Missing base case causing infinite recursion
      • Confusing output with just n
      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

      1. Step 1: Analyze recursive call

        The function calls factorial(n + 1), which increases n each time, never reaching base case.
      2. Step 2: Identify infinite recursion cause

        Because n grows, base case n == 1 is never met, causing infinite recursion.
      3. Final Answer:

        Recursive call increases n, causing infinite recursion -> Option A
      4. 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

      1. Step 1: Identify correct base cases for Fibonacci

        By definition, fib(0) = 0 and fib(1) = 1 are base cases.
      2. Step 2: Check recursive case correctness

        Recursive case sums fib(n-1) and fib(n-2), matching Fibonacci definition.
      3. Final Answer:

        if (n == 0) return 0; if (n == 1) return 1; else return fib(n - 1) + fib(n - 2); -> Option A
      4. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard