Bird
Raised Fist0
DSA C#programming~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: Fibonacci(0) = 0 and Fibonacci(1) = 1. This stops the recursion from continuing infinitely.
Click to reveal answer
beginner
Explain how recursion works in calculating Fibonacci numbers.
Recursion breaks the problem into smaller parts by calling the Fibonacci function for (n-1) and (n-2) until it reaches the base cases. Then it adds those results to get the Fibonacci number for n.
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 Fibonacci numbers many times.
Click to reveal answer
beginner
Show the C# recursive function signature for Fibonacci.
public static int Fibonacci(int n)
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 Fibonacci recursive function return for Fibonacci(0)?
A-1
B1
CUndefined
D0
Which two previous Fibonacci numbers does Fibonacci(n) depend on in recursion?
AFibonacci(n-1) and Fibonacci(n-3)
BFibonacci(n-2) and Fibonacci(n-3)
CFibonacci(n-1) and Fibonacci(n-2)
DFibonacci(n) and Fibonacci(n-1)
What is the main problem with the naive recursive Fibonacci approach?
AIt recalculates the same values multiple times
BIt does not return correct results
CIt uses too much memory
DIt cannot handle negative numbers
What is the base case condition in Fibonacci recursion?
AIf n > 1
BIf n == 0 or n == 1
CIf n < 0
DIf n == 2
What is the output of Fibonacci(4) using recursion?
A2
B5
C4
D3
Describe how the recursive Fibonacci function calculates Fibonacci(5).
Think about how the function calls itself with smaller numbers until it reaches 0 or 1.
You got /4 concepts.
    Explain why the naive recursive Fibonacci function is inefficient and how it can be improved.
    Consider how many times the function repeats work and what techniques can avoid that.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Fibonacci sequence represent when calculated using recursion?
      easy
      A. Each number is the product of the two preceding numbers
      B. Each number is the sum 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: Apply to recursion context

        Recursion calculates this by calling the function for the two previous numbers and adding their results.
      3. Final Answer:

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

        Fibonacci = sum of two previous numbers [OK]
      Hint: Remember Fibonacci adds two previous numbers [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 C# syntax to define a recursive Fibonacci function header?
      easy
      A. void Fibonacci(int n)
      B. int Fibonacci()
      C. int Fibonacci(int n)
      D. int Fibonacci(int)

      Solution

      1. Step 1: Identify function return type and parameters

        The Fibonacci function returns an integer and takes an integer parameter for the position.
      2. Step 2: Match correct C# syntax

        Correct syntax includes return type, function name, and parameter with type: int Fibonacci(int n)
      3. Final Answer:

        int Fibonacci(int n) -> Option C
      4. Quick Check:

        Function returns int and takes int parameter [OK]
      Hint: Function must return int and take int parameter [OK]
      Common Mistakes:
      • Using void return type instead of int
      • Missing parameter type or name
      • Incorrect parameter list syntax
      3. What is the output of this C# code snippet?
      static int Fibonacci(int n) {
        if (n <= 1) return n;
        return Fibonacci(n - 1) + Fibonacci(n - 2);
      }
      
      Console.WriteLine(Fibonacci(4));
      medium
      A. 3
      B. 5
      C. 4
      D. 7

      Solution

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

        Fibonacci(4) = Fibonacci(3) + Fibonacci(2). Fibonacci(3) = Fibonacci(2) + Fibonacci(1) = 1 + 1 = 2. Fibonacci(2) = Fibonacci(1) + Fibonacci(0) = 1 + 0 = 1. So Fibonacci(4) = 2 + 1 = 3.
      2. Step 2: Confirm output

        The printed output is 3.
      3. Final Answer:

        3 -> Option A
      4. Quick Check:

        Fibonacci(4) = 3 [OK]
      Hint: Trace calls down to base cases to sum results [OK]
      Common Mistakes:
      • Confusing Fibonacci(4) with Fibonacci(5)
      • Miscounting base cases
      • Adding wrong recursive results
      4. Identify the error in this recursive Fibonacci function:
      int Fibonacci(int n) {
        if (n == 0) return 0;
        if (n == 1) return 1;
        return Fibonacci(n - 1) - Fibonacci(n - 2);
      }
      medium
      A. The recursive call uses subtraction instead of addition
      B. Parameter type is missing
      C. Function lacks return type
      D. Base cases are incorrect

      Solution

      1. Step 1: Check base cases

        Base cases for n=0 and n=1 are correct and return 0 and 1 respectively.
      2. Step 2: Analyze recursive return statement

        The function uses subtraction (Fibonacci(n - 1) - Fibonacci(n - 2)) instead of addition, which is incorrect for Fibonacci sequence.
      3. Final Answer:

        The recursive call uses subtraction instead of addition -> Option A
      4. Quick Check:

        Fibonacci sums previous two, not subtracts [OK]
      Hint: Fibonacci adds two previous calls, not subtracts [OK]
      Common Mistakes:
      • Using subtraction instead of addition in recursion
      • Forgetting to return in base cases
      • Missing parameter or return type in function
      5. How can you optimize the recursive Fibonacci function to avoid repeated calculations?
      hard
      A. Increase the recursion depth limit
      B. Replace recursion with a while loop only
      C. Use subtraction instead of addition in recursion
      D. Use memoization to store and reuse computed values

      Solution

      1. Step 1: Understand problem with naive recursion

        Naive recursion recalculates Fibonacci values many times, causing inefficiency.
      2. Step 2: Apply memoization technique

        Memoization stores results of Fibonacci calls in a cache to reuse, avoiding repeated work.
      3. Final Answer:

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

        Memoization optimizes recursion by caching results [OK]
      Hint: Cache results to avoid repeated recursive calls [OK]
      Common Mistakes:
      • Thinking only loops can optimize recursion
      • Increasing recursion depth does not improve efficiency
      • Using subtraction breaks Fibonacci logic
      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