본문 바로가기
Algorithm

[파이썬] 재귀함수를 통한 팩토리얼의 구현

by 루껍 2022. 8. 24.
반응형
반응형

팩토리얼(계승)

- 그 수보다 작거나 같은 모든 양의 정수의 곱

 

예시)

 

 3! = 3 × 2 × 1

 4! = 4 × 3 × 2 ×1

 1! = 1

 ※ 0! = 1

   

 

재귀함수

- 함수의 정의 단계에서 자신(함수)을 참조하는 함수

 

 

1) 반복문을 통한 팩토리얼의 구현

 

# 반복문을 통한 팩토리얼 구현

N = int(input())
result = 1

for i in range(N, 0, -1):
    result = result*i

print("{0}! = {1}".format(N, result))

N = 4의 출력결과

 

 

2) 재귀함수를 통한 팩토리얼의 구현

 

# 재귀함수를 통한 팩토리얼의 구현

def factorial(x):
    
    if x == 0:
        return 1 
    
    else:
        answer = x*factorial(x-1)  # 함수호출부(아래 모식도 참조)
        return answer

N = int(input())
result = factorial(N)
print("{0}! = {1}".format(N, result))

N = 4의 출력결과

 

N = 4 인 경우의 재귀함수 모식도

 

 

 

 팩토리얼 구현의 경우, 반복문의 사용, 외부 라이브러리의 활용 등 다양한 구현 방법이 존재하지만, 

재귀함수로 팩토리얼을 구현해봄으로써, 재귀함수의 작동에 대해서 공부할 수 있습니다.

 

 재귀함수의 경우, 자연과학 연구, 특정  문제의 모든 경우의 수를 효율적으로 확인하는 백트래킹 메서드(back tracking method), 코딩 테스트 등, 다방면에서 사용되니 작동방법을 명확히 아는 것이 중요하겠습니다.

반응형

댓글