Bird
Raised Fist0
DSA Cprogramming~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
beginner
How does the factorial function call itself recursively?
The factorial function calls itself with the number minus one (n-1) and multiplies the result by n, building the factorial step by step.
Click to reveal answer
intermediate
What happens if a recursive function does not have a base case?
Without a base case, the function will keep calling itself forever, causing the program to crash or run out of memory.
Click to reveal answer
beginner
Write the recursive formula for factorial of n.
factorial(n) = n * factorial(n-1), with factorial(0) = 1
Click to reveal answer
What is the factorial of 0?
A1
B0
CUndefined
DFactorial of 0 does not exist
In a recursive factorial function, what stops the recursion?
ABase case
BLoop
CReturn statement
DFunction parameters
What does factorial(5) compute to?
A720
B25
C60
D120
Which of these is a correct recursive call in factorial function?
Afactorial(n+1)
Bfactorial(n*2)
Cfactorial(n-1)
Dfactorial(n/2)
What will happen if the base case is missing in recursion?
AFunction returns 1
BInfinite recursion and crash
CFunction returns 0
DProgram runs normally
Explain how a recursive factorial function works step-by-step for input 3.
Think about how the function calls itself and returns values.
You got /5 concepts.
    Describe why a base case is important in recursion and what it should be for factorial.
    Base case is the simplest problem answer.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the factorial of a number represent in mathematics?
      easy
      A. The number divided by 2
      B. The sum of all positive integers up to that number
      C. The number multiplied 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 as n!) is the product of all positive integers from 1 to n.
      2. Step 2: Compare options with definition

        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 means multiply all numbers down to 1 [OK]
      Common Mistakes:
      • Confusing factorial with sum
      • Thinking factorial divides the number
      • Mixing multiplication with addition
      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 0;
      C. if (n == 0) return 0;
      D. if (n == 1) return n + 1;

      Solution

      1. Step 1: Identify base case for factorial

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

        if (n == 0) return 1; returns 1 when n is 0, which is correct. Others return wrong values or conditions.
      3. Final Answer:

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

        Base case n=0 returns 1 [OK]
      Hint: Base case for factorial is n=0 returns 1 [OK]
      Common Mistakes:
      • Returning 0 for base case
      • Using wrong condition like n==1
      • Returning n+1 incorrectly
      3. What is the output of the following C code?
      int factorial(int n) {
          if (n == 0) return 1;
          else return n * factorial(n - 1);
      }
      
      int main() {
          printf("%d", factorial(4));
          return 0;
      }
      medium
      A. 24
      B. 10
      C. 16
      D. 120

      Solution

      1. Step 1: Trace factorial(4) calls

        factorial(4) calls factorial(3), factorial(3) calls factorial(2), factorial(2) calls factorial(1), factorial(1) calls factorial(0).
      2. Step 2: Calculate return values

        factorial(0) = 1
        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
      • Wrong base case causing infinite recursion
      4. Identify the error in this recursive factorial function and select the fix:
      int factorial(int n) {
          if (n == 1) return 1;
          else return n * factorial(n);
      }
      medium
      A. Change base case to if (n == 0) return 0;
      B. Change recursive call to factorial(n - 1);
      C. Remove base case entirely;
      D. Change return to n + factorial(n - 1);

      Solution

      1. Step 1: Analyze recursive call

        The function calls factorial(n) inside itself without reducing n, causing infinite recursion.
      2. Step 2: Correct recursive call to reduce n

        Changing call to factorial(n - 1) ensures n decreases each call, reaching base case.
      3. Final Answer:

        Change recursive call to factorial(n - 1); -> Option B
      4. Quick Check:

        Recursive call must reduce n [OK]
      Hint: Recursive calls must move toward base case [OK]
      Common Mistakes:
      • Calling factorial(n) again causing infinite loop
      • Wrong base case value
      • Using addition instead of multiplication
      5. How would you modify a recursive factorial function to handle negative inputs by returning -1 for invalid input?
      Choose the correct code snippet.
      hard
      A. if (n <= 0) return 1; else return n * factorial(n - 1);
      B. if (n == 0) return -1; else return n * factorial(n - 1);
      C. if (n < 0) return -1; else if (n == 0) return 1; else return n * factorial(n - 1);
      D. if (n < 0) return 0; else return n * factorial(n - 1);

      Solution

      1. Step 1: Add check for negative input

        Factorial is not defined for negative numbers, so return -1 if n < 0.
      2. Step 2: Keep base case and recursive call correct

        Return 1 if n == 0, else multiply n by factorial(n - 1).
      3. Final Answer:

        if (n < 0) return -1; else if (n == 0) return 1; else return n * factorial(n - 1); -> Option C
      4. Quick Check:

        Negative input returns -1 [OK]
      Hint: Check negative input first, then proceed [OK]
      Common Mistakes:
      • Not handling negative input
      • Returning wrong value for negatives
      • Incorrect base case for zero
      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