Bird
Raised Fist0
DSA Goprogramming~5 mins

Fibonacci Using Recursion in DSA Go - 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 further recursion.
Click to reveal answer
beginner
Explain how recursion works in calculating Fibonacci numbers.
Recursion calculates Fibonacci by calling itself with smaller inputs (n-1 and n-2) and combining their results until reaching base cases.
Click to reveal answer
intermediate
What is the time complexity of the naive recursive Fibonacci algorithm?
The time complexity is exponential, O(2^n), because it recalculates the same Fibonacci numbers multiple times.
Click to reveal answer
beginner
Show the first 5 Fibonacci numbers calculated by recursion starting from 0.
The first 5 Fibonacci numbers are: 0, 1, 1, 2, 3.
Click to reveal answer
intermediate
Why is memoization helpful in recursive Fibonacci?
Memoization stores results of previous calls to avoid repeated calculations, improving efficiency from exponential to linear time.
Click to reveal answer
What does the Fibonacci recursive function return for input n=0?
An
B1
CUndefined
D0
Which two previous Fibonacci numbers does the recursive function call to calculate Fibonacci(n)?
AFibonacci(n-1) and Fibonacci(n-2)
BFibonacci(n-2) and Fibonacci(n-3)
CFibonacci(n-1) and Fibonacci(n-3)
DFibonacci(n) and Fibonacci(n-1)
What is the main drawback of the naive recursive Fibonacci implementation?
AUses too much memory
BExponential time complexity due to repeated calculations
CDoes not return correct results
DCannot handle base cases
Which technique can optimize recursive Fibonacci to run in linear time?
AMemoization
BSorting
CLoop unrolling
DBinary search
What is the output of Fibonacci(4) using recursion starting with Fibonacci(0)=0?
A5
B2
C3
D4
Describe how a recursive function calculates the nth Fibonacci number.
Think about how the function calls itself with smaller numbers until it reaches the simplest cases.
You got /4 concepts.
    Explain why naive recursion for Fibonacci is inefficient and how memoization improves it.
    Consider how many times the same Fibonacci numbers are calculated without and with memoization.
    You got /4 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 difference of the two preceding numbers
      C. Each number is the sum of the two preceding numbers
      D. Each number is the square of the previous number

      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.
      3. Final Answer:

        Each number is the sum of the two preceding numbers -> Option C
      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 difference with sum
      • Assuming Fibonacci squares previous number
      2. Which of the following is the correct Go function signature for a recursive Fibonacci function?
      easy
      A. func fibonacci(n int) int
      B. func fibonacci(n string) string
      C. func fibonacci(n float64) float64
      D. func fibonacci() int

      Solution

      1. Step 1: Identify parameter and return types

        The Fibonacci function takes an integer input and returns an integer output.
      2. Step 2: Match correct Go syntax

        func fibonacci(n int) int matches the correct signature: func fibonacci(n int) int.
      3. Final Answer:

        func fibonacci(n int) int -> Option A
      4. Quick Check:

        Input and output are integers [OK]
      Hint: Fibonacci uses int input and int output [OK]
      Common Mistakes:
      • Using string or float types incorrectly
      • Omitting function parameters
      • Wrong return type
      3. What is the output of the following Go code?
      func fibonacci(n int) int {
          if n <= 1 {
              return n
          }
          return fibonacci(n-1) + fibonacci(n-2)
      }
      
      func main() {
          fmt.Println(fibonacci(5))
      }
      medium
      A. 5
      B. 8
      C. 3
      D. 13

      Solution

      1. Step 1: Trace fibonacci(5) calls

        fibonacci(5) = fibonacci(4) + fibonacci(3), fibonacci(4) = 3, fibonacci(3) = 2, so total = 5.
      2. Step 2: Calculate final value

        Sum of fibonacci(4) and fibonacci(3) is 3 + 2 = 5.
      3. Final Answer:

        5 -> Option A
      4. Quick Check:

        Fibonacci(5) = 5 [OK]
      Hint: Recall Fibonacci(5) = 5 from sequence 0,1,1,2,3,5 [OK]
      Common Mistakes:
      • Confusing index starting at 0 or 1
      • Adding wrong recursive results
      • Miscounting base cases
      4. Identify the error in this recursive Fibonacci function and select the fix:
      func fibonacci(n int) int {
          if n == 0 {
              return 0
          } else if n == 1 {
              return 1
          }
          return fibonacci(n-1) - fibonacci(n-2)
      }
      medium
      A. Add a loop instead of recursion
      B. Change base case n == 0 to n == 2
      C. Remove else if condition
      D. Change '-' to '+' in the return statement

      Solution

      1. Step 1: Check recursive return operation

        The Fibonacci sequence sums previous two numbers, but code subtracts them.
      2. Step 2: Correct the operation

        Replace '-' with '+' to correctly add fibonacci(n-1) and fibonacci(n-2).
      3. Final Answer:

        Change '-' to '+' in the return statement -> Option D
      4. Quick Check:

        Fibonacci sums previous two numbers [OK]
      Hint: Fibonacci adds, never subtracts previous two numbers [OK]
      Common Mistakes:
      • Using subtraction instead of addition
      • Changing base cases incorrectly
      • Removing necessary conditions
      5. How can you optimize the recursive Fibonacci function to avoid repeated calculations?
      hard
      A. Increase the recursion depth limit
      B. Use memoization to store and reuse results
      C. Use a global variable to count calls
      D. Replace recursion with a random number generator

      Solution

      1. Step 1: Understand repeated calculations problem

        Recursive Fibonacci recalculates same values many times, causing inefficiency.
      2. Step 2: Apply memoization technique

        Memoization stores results of previous calls to reuse them, reducing repeated work.
      3. Final Answer:

        Use memoization to store and reuse results -> Option B
      4. Quick Check:

        Memoization optimizes recursion by caching [OK]
      Hint: Cache results to avoid repeated recursion calls [OK]
      Common Mistakes:
      • Increasing recursion depth does not fix inefficiency
      • Counting calls doesn't optimize calculation
      • Random numbers unrelated to Fibonacci
      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