Skip to main content
Practice

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.

Calculating Factorial with a Loop
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.

Calculating Factorial with a Recursive Function
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.