Bird
Raised Fist0
DSA Cprogramming~5 mins

Fibonacci Using Recursion in DSA C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the base case in a recursive Fibonacci function?
The base case returns the first two Fibonacci numbers directly, usually when n is 0 or 1, to stop the recursion.
Click to reveal answer
beginner
Explain how recursion works in calculating Fibonacci numbers.
Recursion calculates Fibonacci by calling itself with smaller values (n-1 and n-2) and adding their results until it reaches the base case.
Click to reveal answer
intermediate
What is the time complexity of the naive recursive Fibonacci algorithm?
The time complexity is exponential, specifically O(2^n), because it recalculates the same values many times.
Click to reveal answer
beginner
Show the recursive formula used in Fibonacci calculation.
fib(n) = fib(n-1) + fib(n-2) with base cases fib(0) = 0 and fib(1) = 1.
Click to reveal answer
intermediate
Why is recursion not efficient for large Fibonacci numbers without optimization?
Because it repeats calculations for the same inputs many times, leading to a lot of unnecessary work and slow performance.
Click to reveal answer
What does the base case in Fibonacci recursion return for fib(0)?
A1
B0
C2
DUndefined
Which of the following best describes the recursive call in Fibonacci?
Afib(n) calls fib(n-1) and fib(n-2)
Bfib(n) calls fib(n+1) and fib(n+2)
Cfib(n) calls fib(n-1) only
Dfib(n) calls fib(n-2) only
What is the main drawback of the naive recursive Fibonacci method?
AExponential time complexity
BRequires loops
CDoes not return correct results
DUses too much memory
What is the output of fib(3) using recursion?
A5
B3
C1
D2
Which technique can improve recursive Fibonacci efficiency?
ASorting
BBinary search
CMemoization
DStack
Describe how the Fibonacci sequence is calculated using recursion, including base cases and recursive calls.
Think about how the function calls itself with smaller numbers until it reaches the simplest cases.
You got /4 concepts.
    Explain why the naive recursive Fibonacci algorithm is inefficient and how you might improve it.
    Consider what happens when the function calls itself many times with the same inputs.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Fibonacci sequence represent when calculated using recursion?
      easy
      A. Each number is the sum of the two preceding numbers
      B. Each number is the product of the two preceding numbers
      C. Each number is the difference of the two preceding numbers
      D. Each number is the division of the two preceding numbers

      Solution

      1. Step 1: Understand Fibonacci sequence definition

        The Fibonacci sequence is defined such that each number is the sum of the two numbers before it.
      2. Step 2: Relate to recursion

        Recursion calls the function for the two previous numbers and adds their results to get the current number.
      3. Final Answer:

        Each number is the sum of the two preceding numbers -> Option A
      4. Quick Check:

        Fibonacci = sum of two previous numbers [OK]
      Hint: Fibonacci adds previous two numbers recursively [OK]
      Common Mistakes:
      • Thinking Fibonacci multiplies previous numbers
      • Confusing subtraction or division with addition
      • Assuming Fibonacci uses only one previous number
      2. Which of the following is the correct base case for a recursive Fibonacci function in C?
      easy
      A. if (n < 2) return 2;
      B. if (n == 0) return 0; else return 1;
      C. if (n <= 1) return n;
      D. if (n == 1) return 0;

      Solution

      1. Step 1: Identify base cases for Fibonacci

        Fibonacci sequence starts with 0 and 1 for n=0 and n=1 respectively, so base case returns n when n is 0 or 1.
      2. Step 2: Match base case syntax

        The condition if (n <= 1) return n; correctly returns 0 for n=0 and 1 for n=1.
      3. Final Answer:

        if (n <= 1) return n; -> Option C
      4. Quick Check:

        Base case returns n for n=0 or 1 [OK]
      Hint: Base case returns n when n is 0 or 1 [OK]
      Common Mistakes:
      • Returning 2 for base case
      • Returning 0 for n=1 incorrectly
      • Missing base case leading to infinite recursion
      3. What is the output of the following C code snippet?
      int fib(int n) {
        if (n <= 1) return n;
        return fib(n-1) + fib(n-2);
      }
      
      int main() {
        printf("%d", fib(4));
        return 0;
      }
      medium
      A. 4
      B. 3
      C. 5
      D. 7

      Solution

      1. Step 1: Calculate fib(4) using recursion

        fib(4) = fib(3) + fib(2) - fib(3) = fib(2) + fib(1) = (fib(1)+fib(0)) + 1 = (1+0)+1=2 - fib(2) = fib(1) + fib(0) = 1 + 0 = 1 So fib(4) = 2 + 1 = 3
      2. Step 2: Confirm output printed

        The printf prints the integer 3.
      3. Final Answer:

        3 -> Option B
      4. Quick Check:

        fib(4) = 3 [OK]
      Hint: Trace fib calls down to base cases [OK]
      Common Mistakes:
      • Confusing fib(4) with fib(5)
      • Adding wrong fib values
      • Forgetting base cases
      4. Identify the error in this recursive Fibonacci function and select the fix:
      int fib(int n) {
        if (n == 0) return 0;
        else return fib(n-1) + fib(n-2);
      }
      medium
      A. Add base case for n == 1 to return 1
      B. Change return 0 to return 1 for n == 0
      C. Remove else and just return fib(n-1) + fib(n-2)
      D. Change function to iterative instead of recursive

      Solution

      1. Step 1: Check base cases

        Function only returns 0 for n==0 but misses base case for n==1, causing infinite recursion for n=1.
      2. Step 2: Fix by adding base case for n==1

        Adding if (n == 1) return 1; fixes recursion and returns correct Fibonacci values.
      3. Final Answer:

        Add base case for n == 1 to return 1 -> Option A
      4. Quick Check:

        Both n=0 and n=1 base cases needed [OK]
      Hint: Always include base cases for n=0 and n=1 [OK]
      Common Mistakes:
      • Missing base case for n=1
      • Changing base case values incorrectly
      • Removing else causing syntax confusion
      5. You want to compute the 6th Fibonacci number using recursion but want to avoid repeated calculations. Which approach improves efficiency?
      hard
      A. Call fib(n-1) twice to ensure correctness
      B. Increase the recursion depth limit
      C. Use a loop instead of recursion without storing values
      D. Use memoization to store and reuse computed Fibonacci values

      Solution

      1. Step 1: Understand repeated calculations in recursion

        Recursive Fibonacci calls fib(n-1) and fib(n-2) repeatedly, causing many duplicate calls and inefficiency.
      2. Step 2: Use memoization to store results

        Memoization saves computed Fibonacci values in a cache, so repeated calls return stored results instantly, improving speed.
      3. Final Answer:

        Use memoization to store and reuse computed Fibonacci values -> Option D
      4. Quick Check:

        Memoization avoids repeated work [OK]
      Hint: Store results to avoid repeated recursive calls [OK]
      Common Mistakes:
      • Increasing recursion depth doesn't fix inefficiency
      • Using loops without caching still repeats work
      • Calling fib(n-1) twice wastes time
      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