반복문과 재귀함수 비교
팩토리얼은 일반적으로 반복문 또는 재귀 함수를 사용하여 계산할 수 있습니다. 두 방법은 동일한 결과를 제공하지만, 내부 구현 방식에 차이가 있습니다.
반복문을 사용한 팩토리얼 계산
반복문을 사용하는 방식은 변수를 초기화하고, 숫자를 하나씩 감소시키며 곱하는 방식으로 팩토리얼을 계산합니다.
반복문으로 팩토리얼 계산하는 예시
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
print(factorial_iterative(5)) # 120
재귀함수를 사용한 팩토리얼 계산
재귀함수 방식은 함수가 자기 자신을 호출하여 작은 문제로 나누고, 종료 조건에 도달하면 결과를 반환합니다.
재귀함수로 팩토리얼 계산 예시
def factorial_recursive(n):
if n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
print(factorial_recursive(5)) # 120
두 방법의 차이점
-
메모리 사용
: 재귀함수는 자기 자신을 계속해서 호출하기 때문에 많은 메모리를 사용합니다. 반면, 반복문은 메모리 사용이 적습니다. 컴퓨터의 메모리가 한정되어 있기 때문에 다수의 재귀 호출은 메모리 부족 문제를 일으킬 수 있습니다. -
가독성
: 반복문은 단계별로 명확하게 보여주어서 이해하기 쉽습니다. 재귀함수는 간결하고 수학적으로 보이지만, 함수가 자기 자신을 계속 호출하는 방식이라 처음에는 이해하기 어려울 수 있습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!