In this tutorial, we will learn how to calculate the factorial of a number using recursion in Swift. We will understand the concept of recursion, write an algorithm for calculating factorial, and implement the solution step by step with a complete Swift program.
What is Factorial?
The factorial of a non-negative integer n is the product of all positive integers less than or equal to n. It is denoted by n!. For example:
5! = 5 × 4 × 3 × 2 × 1 = 1203! = 3 × 2 × 1 = 60! = 1(by definition)
Factorials are widely used in mathematics, especially in combinatorics, probability, and algebra.
What is Recursion?
Recursion is a technique in which a function calls itself to solve smaller instances of the same problem. A recursive function must have a base case to terminate and a recursive case that breaks the problem into smaller parts.
To calculate the factorial of a number using recursion:
- Base Case: If
nis 0 or 1, return 1 because0! = 1and1! = 1. - Recursive Case: Multiply
nby the factorial ofn - 1(i.e.,n × factorial(n - 1)).
Step-by-Step Implementation in Swift
1 Define the Base Case
Create a function that returns 1 when n is 0 or 1. This ensures the recursion terminates:
func factorial(_ n: Int) -> Int {
if n == 0 || n == 1 {
return 1 // Base case: factorial(0) and factorial(1) are 1
}
return 0 // Placeholder for recursive case
}
2 Add the Recursive Case
Add logic to call the factorial function recursively for n - 1:
func factorial(_ n: Int) -> Int {
if n == 0 || n == 1 {
return 1 // Base case
}
return n * factorial(n - 1) // Recursive case
}
Explanation:
factorial(_ n: Int): Defines a recursive function that calculates the factorial ofn.if n == 0 || n == 1: Stops the recursion whennis 0 or 1, returning 1 as the result.n * factorial(n - 1): Recursively calls thefactorialfunction forn - 1and multiplies the result byn.
3 Test the Function
Let’s test the function with some example inputs:
// Test cases
print("Factorial of 5: \(factorial(5))") // Output: 120
print("Factorial of 3: \(factorial(3))") // Output: 6
print("Factorial of 0: \(factorial(0))") // Output: 1
Complete Swift Program
Here’s the complete Swift program to calculate the factorial of a number using recursion:
import Foundation
// Function to calculate factorial using recursion
func factorial(_ n: Int) -> Int {
if n == 0 || n == 1 {
return 1 // Base case
}
return n * factorial(n - 1) // Recursive case
}
// Test cases
print("Factorial of 5: \(factorial(5))") // Output: 120
print("Factorial of 3: \(factorial(3))") // Output: 6
print("Factorial of 0: \(factorial(0))") // Output: 1
Output:
Factorial of 5: 120
Factorial of 3: 6
Factorial of 0: 1
Xcode Screenshot

