📖 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
Step 1: Understand recursion basics
Recursion works by calling itself repeatedly until a stopping point is reached.
Step 2: Identify the role of base case
The base case stops further recursive calls to avoid infinite loops.
Final Answer:
To stop the recursion and prevent infinite calls -> Option D
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
Step 1: Identify factorial base case
Factorial of 0 is defined as 1, so base case is when n == 0.
Step 2: Check options for correct base case
n == 0 matches n == 0, which returns 1 stopping recursion correctly.
Final Answer:
n == 0 -> Option B
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;
}
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.