[Python] 백준 알고리즘 온라인 저지 10872번 팩토리얼
https://www.acmicpc.net/problem/10872
for 문으로 쉽게 풀이할 수 있지만 재귀 함수 풀이에 속해 있기에 둘 다 풀이 해보기로 하였다.
- for문 코드
n = int(input())
result = 1
if n > 0:
for i in range(1, n+1):
result *= i
print(result)
- 재귀 함수 코드
def factorial(n):
result = 1
if n > 0:
result = n * factorial(n - 1)
return result
n = int(input())
print(factorial(n))
팩토리얼
- 인풋 값 n!을 계산하는 문제이므로 for문 코드 처럼 1부터 n까지 1씩커지는 수를 곱해주면 된다.
- 재귀 함수(recursive)를 이용시 함수를 만들고 if문을 이용하여 n이 0보다 큰 경우 자신을 다시 불러오는 함수를 작성, 끝에는 result값을 return한다.
풀이
자기 자신을 불러오며 결과적으로 n = 5일 경우 result는 5 * 4 * 3 * 2 * 1 의 식이 완성되고 그 값을 리턴해 출력됩니다.
풀이 결과
'알고리즘' 카테고리의 다른 글
백준 2231번 분해합 파이썬 풀이 (0) | 2022.01.09 |
---|---|
백준 2798번 블랙잭 파이썬 풀이 (0) | 2022.01.07 |
백준 11729 하노이 탑 이동 순서 파이썬 풀이 (0) | 2022.01.04 |
백준 2247번 별찍기 - 10 파이썬 풀이 (0) | 2022.01.03 |
10870번 피보나치 수 5 파이썬 풀이 (0) | 2022.01.02 |