Bird
Raised Fist0
DSA C#programming~5 mins

Factorial Using Recursion in DSA C# - 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 base case in a recursive factorial function?
The base case is when the input number is 0 or 1, and the factorial is 1. This stops the recursion from continuing forever.
Click to reveal answer
intermediate
Explain how factorial of 4 is calculated using recursion.
Factorial(4) calls Factorial(3), which calls Factorial(2), which calls Factorial(1). Factorial(1) returns 1. Then results multiply back: 1 * 2 = 2, 2 * 3 = 6, 6 * 4 = 24.
Click to reveal answer
beginner
What happens if a recursive function does not have a base case?
Without a base case, the function keeps calling itself forever, causing a stack overflow error and crashing the program.
Click to reveal answer
beginner
Write the recursive formula for factorial n!
Factorial(n) = n * Factorial(n - 1), with Factorial(0) = 1 as the base case.
Click to reveal answer
What is the factorial of 0?
A1
B0
CUndefined
DFactorial of 0 does not exist
In recursion, what stops the function from calling itself infinitely?
ABase case
BLoop
CVariable
DReturn type
What does factorial(3) return?
A3
B9
C6
D1
Which of these is the correct recursive call in factorial function?
AFactorial(n) = Factorial(n + 1)
BFactorial(n) = n * Factorial(n - 1)
CFactorial(n) = n + Factorial(n - 1)
DFactorial(n) = n / Factorial(n - 1)
What error occurs if recursion has no base case?
AType error
BSyntax error
CNull pointer exception
DStack overflow
Explain how recursion works in calculating factorial with an example.
Think about how factorial(4) breaks down into smaller factorial calls.
You got /4 concepts.
    Describe the importance of the base case in a recursive factorial function.
    What happens if the base case is missing?
    You got /4 concepts.

      Practice

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

      Solution

      1. Step 1: Understand factorial definition

        Factorial of a number n (written 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 division.
      3. Final Answer:

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

        Factorial = product of integers [OK]
      Hint: Factorial multiplies numbers down to 1 [OK]
      Common Mistakes:
      • Confusing factorial with sum
      • Thinking factorial divides the number
      • Assuming factorial doubles the number
      2. Which of the following is the correct base case for a recursive factorial function in C#?
      easy
      A. if (n == 0) return 1;
      B. if (n == 1) return 1;
      C. if (n == 2) return 2;
      D. if (n == -1) return 1;

      Solution

      1. Step 1: Identify factorial base case

        By definition, 0! = 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 == 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 n == 0 returning 1 [OK]
      Common Mistakes:
      • Using n == 1 as base case
      • Returning wrong value in base case
      • Not handling negative inputs
      3. What is the output of the following C# code?
      static int Factorial(int n) {
          if (n == 0) return 1;
          return n * Factorial(n - 1);
      }
      
      Console.WriteLine(Factorial(4));
      medium
      A. 24
      B. 10
      C. 16
      D. 120

      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 A
      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
      • Misunderstanding base case
      4. Identify the error in this recursive factorial function:
      static int Factorial(int n) {
          if (n == 1) return 1;
          return n * Factorial(n);
      }
      medium
      A. Return type should be void
      B. Missing base case for n == 0
      C. Recursive call uses same n, causing infinite recursion
      D. Multiplication operator is incorrect

      Solution

      1. Step 1: Analyze recursive call

        The function calls Factorial(n) inside itself without changing n, causing infinite recursion.
      2. Step 2: Identify fix

        Recursive call should be Factorial(n - 1) to reduce n and reach base case.
      3. Final Answer:

        Recursive call uses same n, causing infinite recursion -> Option C
      4. Quick Check:

        Recursive call must reduce n [OK]
      Hint: Recursive call must change parameter to approach base case [OK]
      Common Mistakes:
      • Calling function with same argument
      • Forgetting base case
      • Wrong return type
      5. How would you modify the recursive factorial function to handle negative inputs by returning -1 for any negative number?
      static int Factorial(int n) {
          if (n == 0) return 1;
          return n * Factorial(n - 1);
      }
      hard
      A. No change needed; factorial works for negatives
      B. Add if (n < 0) return -1; before base case
      C. Add if (n == 1) return -1; after base case
      D. Change base case to if (n <= 0) return 1;

      Solution

      1. Step 1: Understand negative input handling

        Factorial is undefined for negative numbers, so function should return -1 for n < 0.
      2. Step 2: Modify function

        Add a check at start: if (n < 0) return -1; before base case to handle negatives properly.
      3. Final Answer:

        Add if (n < 0) return -1; before base case -> Option B
      4. Quick Check:

        Return -1 for negatives before recursion [OK]
      Hint: Check negatives first, return -1 before recursion [OK]
      Common Mistakes:
      • Changing base case incorrectly
      • Not handling negatives at all
      • Returning wrong value 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