Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

Factorial Using Recursion in DSA Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is recursion in programming?
Recursion is when a function calls itself to solve smaller parts of a problem until it reaches a simple case it can solve directly.
Click to reveal answer
beginner
What is the factorial of a number?
The factorial of a number n (written as n!) is the product of all positive integers from 1 up to n. For example, 4! = 4 × 3 × 2 × 1 = 24.
Click to reveal answer
beginner
What is the base case in a recursive factorial function?
The base case is when n equals 0 or 1, and the factorial is 1. This stops the recursion from continuing forever.
Click to reveal answer
intermediate
How does the recursive factorial function calculate factorial for n > 1?
It multiplies n by the factorial of (n - 1), calling itself with a smaller number until it reaches the base case.
Click to reveal answer
beginner
Show the TypeScript function signature for a recursive factorial function.
function factorial(n: number): number
Click to reveal answer
What is the factorial of 0?
AUndefined
B0
CCannot be calculated
D1
In recursion, what prevents infinite calls?
ALoop
BBase case
CVariable declaration
DFunction parameters
What does factorial(4) compute in recursion?
A4 × factorial(3)
B4 + factorial(3)
Cfactorial(3) only
D4 × 3
Which of these is a correct base case for factorial recursion?
Aif (n > 1) return n * factorial(n - 1);
Bif (n === 1) return 0;
Cif (n === 0) return 1;
Dif (n < 0) return 1;
What will happen if the base case is missing in a recursive factorial function?
AThe function will call itself forever and cause an error
BThe function will return 1 immediately
CThe function will calculate factorial normally
DThe function will return 0
Explain how a recursive function calculates the factorial of a number.
Think about how the problem is broken down into smaller parts.
You got /4 concepts.
    Write the base case and recursive step for a factorial function in simple words.
    Focus on what stops the recursion and what repeats.
    You got /2 concepts.

      Practice

      (1/5)
      1. What does the factorial of a number represent in mathematics?
      easy
      A. The product of all positive integers up to that number
      B. The sum of all positive integers up to that number
      C. The number multiplied by 2
      D. The number divided by 2

      Solution

      1. Step 1: Understand factorial definition

        Factorial of a number n (written as n!) is the product of all positive integers from 1 to n.
      2. Step 2: Compare options

        Only the product of all positive integers up to that number correctly describes factorial as a product, not sum or other operations.
      3. Final Answer:

        The product of all positive integers up to that number -> Option A
      4. Quick Check:

        Factorial = product of integers [OK]
      Hint: Factorial means multiply all numbers down to 1 [OK]
      Common Mistakes:
      • Confusing factorial with sum
      • Thinking factorial divides
      • Mixing factorial with doubling
      2. Which of the following is the correct base case for a recursive factorial function in TypeScript?
      easy
      A. if (n === 0) return 1;
      B. if (n === 1) return 0;
      C. if (n === 0) return 0;
      D. if (n === 1) return n + 1;

      Solution

      1. Step 1: Identify factorial base case

        Factorial of 0 is defined as 1, so the base case should return 1 when n is 0.
      2. Step 2: Check options

        Only if (n === 0) return 1; returns 1 when n is 0, which is correct base case for recursion.
      3. Final Answer:

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

        Base case: 0! = 1 [OK]
      Hint: Base case for factorial is 0 returns 1 [OK]
      Common Mistakes:
      • Returning 0 for base case
      • Using wrong base condition
      • Returning n+1 incorrectly
      3. What is the output of this TypeScript code?
      function factorial(n: number): number {
        if (n === 0) return 1;
        return n * factorial(n - 1);
      }
      console.log(factorial(4));
      medium
      A. 120
      B. 10
      C. 16
      D. 24

      Solution

      1. Step 1: Trace recursive calls for factorial(4)

        factorial(4) = 4 * factorial(3) factorial(3) = 3 * factorial(2) factorial(2) = 2 * factorial(1) factorial(1) = 1 * factorial(0) factorial(0) = 1 (base case)
      2. Step 2: Calculate values bottom-up

        factorial(1) = 1 * 1 = 1 factorial(2) = 2 * 1 = 2 factorial(3) = 3 * 2 = 6 factorial(4) = 4 * 6 = 24
      3. Final Answer:

        24 -> Option D
      4. Quick Check:

        4! = 24 [OK]
      Hint: Multiply down from n to 1 recursively [OK]
      Common Mistakes:
      • Stopping recursion too early
      • Adding instead of multiplying
      • Wrong base case
      4. Identify the error in this recursive factorial function:
      function factorial(n: number): number {
        if (n === 1) return 1;
        return n * factorial(n - 1);
      }
      console.log(factorial(0));
      medium
      A. No error, output is 1
      B. Infinite recursion for input 0
      C. Syntax error due to missing semicolon
      D. Returns 0 for input 0

      Solution

      1. Step 1: Analyze base case for input 0

        Base case triggers only when n === 1, so factorial(0) calls factorial(-1), then factorial(-2), and so on infinitely.
      2. Step 2: Understand recursion behavior

        Without base case for 0, recursion never stops for input 0, causing infinite recursion (stack overflow).
      3. Final Answer:

        Infinite recursion for input 0 -> Option B
      4. Quick Check:

        Missing base case for 0 causes infinite recursion [OK]
      Hint: Always include base case for 0 in factorial [OK]
      Common Mistakes:
      • Missing base case for 0
      • Assuming 1 covers 0
      • Ignoring negative inputs
      5. How can you modify the recursive factorial function to handle negative inputs gracefully in TypeScript?
      hard
      A. Return 0 for all negative inputs inside recursion
      B. Remove the base case and let recursion handle negatives
      C. Add a check to return -1 for negative inputs before recursion
      D. Use a loop instead of recursion for negatives

      Solution

      1. Step 1: Understand factorial domain

        Factorial is not defined for negative numbers, so function should handle negatives before recursion.
      2. Step 2: Add input validation

        Adding a condition to return -1 (or error) for negative inputs prevents invalid recursion calls.
      3. Final Answer:

        Add a check to return -1 for negative inputs before recursion -> Option C
      4. Quick Check:

        Validate input before recursion to handle negatives [OK]
      Hint: Check negatives first, return error code [OK]
      Common Mistakes:
      • Ignoring negative inputs
      • Letting recursion run on negatives
      • Returning wrong values for negatives
      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