Bird
Raised Fist0
DSA C++programming~15 mins

Recursion Base Case and Recursive Case in DSA C++ - Build from Scratch

Choose your learning style10 modes available
Recursion Base Case and Recursive Case
📖 Scenario: Imagine you have a stack of books and you want to count how many books are in the stack. You can do this by taking one book off the top at a time until there are no books left.
🎯 Goal: Build a simple recursive function in C++ that counts down from a given number to zero using recursion. You will learn how to set the base case and the recursive case.
📋 What You'll Learn
Create a function called countDown that takes an integer parameter n.
Implement a base case that stops recursion when n is zero.
Implement a recursive case that calls countDown with n - 1.
Print the value of n in each call before the recursive call.
Call countDown with the starting number 5 in main.
💡 Why This Matters
🌍 Real World
Recursion is used in many real-world problems like navigating folders, solving puzzles, and processing data structures like trees.
💼 Career
Understanding recursion is important for software developers, especially when working with algorithms, data structures, and problem-solving tasks.
Progress0 / 4 steps
1
Create the countDown function signature
Write the function signature for a function called countDown that takes an integer parameter n and returns void.
DSA C++
Hint

The function should be named countDown, take one integer parameter n, and return nothing (void).

2
Add the base case to stop recursion
Inside the countDown function, add a base case that returns immediately if n is equal to 0.
DSA C++
Hint

The base case checks if n is zero and then returns to stop further calls.

3
Add the recursive case to call countDown with n - 1
Inside the countDown function, after the base case, print the value of n using std::cout and then call countDown recursively with n - 1.
DSA C++
Hint

Print n before calling countDown again with n - 1.

4
Call countDown from main and print the output
In the main function, call countDown with the value 5 and return 0.
DSA C++
Hint

Call countDown(5); inside main to see the countdown from 5 to 1.

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