반응형
반응형
팩토리얼(계승)
- 그 수보다 작거나 같은 모든 양의 정수의 곱
예시)
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))

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))


팩토리얼 구현의 경우, 반복문의 사용, 외부 라이브러리의 활용 등 다양한 구현 방법이 존재하지만,
재귀함수로 팩토리얼을 구현해봄으로써, 재귀함수의 작동에 대해서 공부할 수 있습니다.
재귀함수의 경우, 자연과학 연구, 특정 문제의 모든 경우의 수를 효율적으로 확인하는 백트래킹 메서드(back tracking method), 코딩 테스트 등, 다방면에서 사용되니 작동방법을 명확히 아는 것이 중요하겠습니다.
반응형
'Algorithm' 카테고리의 다른 글
[파이썬] 재귀함수를 통한 피보나치 수의 구현 (15) | 2022.08.25 |
---|---|
[파이썬] 소수 판별/소수로 구성된 배열 생성 알고리즘 (24) | 2022.08.14 |
[파이썬] 백준 9020번 '골드바흐의 추측' 알고리즘 -2 (0) | 2022.08.06 |
[파이썬] 백준 9020번 '골드바흐의 추측' 알고리즘 -1 (0) | 2022.08.04 |
[파이썬] 백준 1024번 '수열의 합' 알고리즘 (0) | 2022.08.01 |
댓글