Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Fibonacci Using Recursion in DSA Javascript - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to return the base case value for Fibonacci of 0.

DSA Javascript
function fibonacci(n) {
  if (n === 0) {
    return [1];
  }
  return fibonacci(n - 1) + fibonacci(n - 2);
}
Drag options to blanks, or click blank then click option'
A0
B1
Cn
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Returning 1 instead of 0 for n=0.
Returning n which is unnecessary here.
2fill in blank
medium

Complete the code to return the base case value for Fibonacci of 1.

DSA Javascript
function fibonacci(n) {
  if (n === 0) {
    return 0;
  } else if (n === 1) {
    return [1];
  }
  return fibonacci(n - 1) + fibonacci(n - 2);
}
Drag options to blanks, or click blank then click option'
A-1
B0
Cn
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Returning 0 instead of 1 for n=1.
Returning n which is unnecessary here.
3fill in blank
hard

Fix the error in the recursive call to correctly calculate Fibonacci.

DSA Javascript
function fibonacci(n) {
  if (n === 0) {
    return 0;
  } else if (n === 1) {
    return 1;
  }
  return fibonacci([1]) + fibonacci(n - 2);
}
Drag options to blanks, or click blank then click option'
An - 1
Bn + 1
C1
Dn
Attempts:
3 left
💡 Hint
Common Mistakes
Using n + 1 which causes infinite recursion.
Using n which causes infinite recursion.
4fill in blank
hard

Fill both blanks to complete the recursive Fibonacci function with base cases.

DSA Javascript
function fibonacci(n) {
  if (n === [1]) {
    return 0;
  } else if (n === [2]) {
    return 1;
  }
  return fibonacci(n - 1) + fibonacci(n - 2);
}
Drag options to blanks, or click blank then click option'
A0
B1
C2
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping the base cases.
Using 2 or -1 as base cases.
5fill in blank
hard

Fill all three blanks to create a recursive Fibonacci function that returns the nth Fibonacci number.

DSA Javascript
function fibonacci([1]) {
  if ([2] === 0) {
    return 0;
  } else if (n === [3]) {
    return 1;
  }
  return fibonacci(n - 1) + fibonacci(n - 2);
}
Drag options to blanks, or click blank then click option'
An
C1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names for parameter and conditions.
Mixing up base case values.

Practice

(1/5)
1. What does a recursive Fibonacci function do when called with fib(4)?
easy
A. Throws a syntax error because recursion is not allowed
B. Returns 4 immediately without any calculation
C. Runs an infinite loop without returning
D. Calculates the 4th Fibonacci number by calling itself with smaller numbers

Solution

  1. Step 1: Understand recursive calls for fib(4)

    The function calls fib(3) and fib(2) to calculate fib(4).
  2. Step 2: Combine results of smaller calls

    fib(3) and fib(2) are calculated recursively and their sum is returned as fib(4).
  3. Final Answer:

    Calculates the 4th Fibonacci number by calling itself with smaller numbers -> Option D
  4. Quick Check:

    Recursive calls break problem into smaller parts [OK]
Hint: Recursion breaks problem into smaller calls [OK]
Common Mistakes:
  • Thinking recursion returns input directly
  • Assuming recursion causes infinite loop always
  • Confusing recursion with iteration
2. Which of the following is the correct base case syntax for a recursive Fibonacci function in JavaScript?
easy
A. if (n = 0) return 0;
B. if (n <= 1) return n;
C. if n == 1 then return 1
D. if (n > 1) return n;

Solution

  1. Step 1: Identify correct JavaScript syntax for base case

    The base case must check if n is 0 or 1 and return n using proper JavaScript syntax.
  2. Step 2: Validate each option

    if (n <= 1) return n; uses correct syntax: if (n <= 1) return n; Options A and B have syntax errors or wrong operators, D is logically incorrect.
  3. Final Answer:

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

    Base case uses if (n <= 1) return n; [OK]
Hint: Base case returns n when n is 0 or 1 [OK]
Common Mistakes:
  • Using assignment (=) instead of comparison (== or ===)
  • Missing parentheses in if condition
  • Incorrect logical condition for base case
3. What is the output of the following code?
function fib(n) {
  if (n <= 1) return n;
  return fib(n - 1) + fib(n - 2);
}
console.log(fib(5));
medium
A. 5
B. 8
C. 3
D. 13

Solution

  1. Step 1: Trace fib(5) recursive calls

    fib(5) = fib(4) + fib(3), fib(4) = fib(3) + fib(2), fib(3) = fib(2) + fib(1), and so on until base cases.
  2. Step 2: Calculate values bottom-up

    fib(0)=0, fib(1)=1, fib(2)=1, fib(3)=2, fib(4)=3, fib(5)=5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    Fibonacci(5) = 5 [OK]
Hint: Remember Fibonacci sequence: 0,1,1,2,3,5... [OK]
Common Mistakes:
  • Confusing index with Fibonacci value
  • Miscounting recursive calls
  • Assuming fib(5) is 8 or 13 incorrectly
4. Identify the error in this recursive Fibonacci function:
function fib(n) {
  if (n == 0) return 0;
  if (n == 1) return 1;
  return fib(n - 1) - fib(n - 2);
}
medium
A. The recursive step uses subtraction instead of addition
B. The base cases are incorrect
C. The function will cause infinite recursion
D. The function syntax is invalid

Solution

  1. Step 1: Check base cases correctness

    Base cases for n==0 and n==1 correctly return 0 and 1 respectively.
  2. Step 2: Analyze recursive step

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

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

    Fibonacci sums previous two, not subtracts [OK]
Hint: Fibonacci adds previous two numbers, not subtracts [OK]
Common Mistakes:
  • Using wrong operator (+ vs -)
  • Confusing base cases
  • Assuming syntax error when logic is wrong
5. How can you optimize the recursive Fibonacci function to avoid repeated calculations?
hard
A. Remove base cases to speed up recursion
B. Increase the recursion depth limit
C. Use memoization to store and reuse computed values
D. Replace recursion with a while loop only

Solution

  1. Step 1: Understand repeated calculations in recursion

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

    Memoization saves results of fib(n) calls in a cache to reuse and avoid repeated work.
  3. Final Answer:

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

    Memoization improves recursion efficiency [OK]
Hint: Store results to avoid repeated recursion calls [OK]
Common Mistakes:
  • Thinking increasing recursion limit helps
  • Believing loops are only solution
  • Removing base cases causing infinite recursion
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