Comparing Loop and Recursive Functions
Factorial
, meaning the product of all positive integers up to a specified number, can be implemented in code using either loops or recursive functions.
In this lesson, we will explore how to calculate factorials using loops and recursive functions.
Calculating Factorial with Loops
To calculate a factorial using a loop
, you can utilize a for loop
to sequentially multiply numbers from 1
to n
, as shown below.
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
print(factorial_iterative(5))
# 120
Calculating Factorial with a Recursive Function
To calculate a factorial using a recursive function
, the function can call itself, as demonstrated in the example below.
def factorial_recursive(n):
if n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
print(factorial_recursive(5))
# 120
What are the differences between the two methods?
While both the loop and recursive function implementations produce the same factorial result, there are distinct differences between the two methods:
-
Speed
: Generally, loops are faster than recursive functions. Recursive functions can be slower as they continually call themselves internally. -
Memory Usage
: Recursive functions often use more memory because they repeatedly call themselves.
Recursive functions are concise and easy to understand, but they may not perform as well as loops, requiring careful consideration when deciding which to use.
Want to learn more?
Join CodeFriends Plus membership or enroll in a course to start your journey.