Problem Solving
[백준(BOJ)]10872번 : 팩토리얼 - Python(파이썬) - (브론즈5, 재귀 알고리즘)
개발자 쿠키
2022. 7. 25. 13:49
✔코드
# [백준 10872번] - 팩토리얼 - (실버4, 스택)
def factorial(n: int) -> int:
"""양의 정수 n의 팩토리얼값을 재귀적으로 구함"""
if n == 0:
return 1
else:
return n * factorial(n-1)
if __name__ == '__main__':
n = int(input())
print(factorial(n))
✔문제접근
factorial(): n * factorial(n-1)의 값을 반환
✔문제풀이
n = 5 이면
factorial(5) = 5 * factorial(4), 즉 (5 * 4)
factorial(4) = 4 * factorial(3), 즉 (4 * 3)
factorial(3) = 3 * factorial(2), 즉 (3 * 2)
factorial(2) = 2 * factorial(1), 즉 (2 * 1)
factorial(1) = 1 * factorial(0), 즉 (1 * 1)
factorial(5) = 5 * 4 * 3 * 2 * 1 = 120