1) 반복문 for
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
2) 재귀함수
def factorial(n):
if n > 1:
return n * factorial(n-1)
else:
return 1
*RescurisonError: 재귀와 관련된 에러로 파이썬이 정한 최대 재귀 깊이보다 그 깊이가 더 깊어질 때 방생하는 에러. 대체로 최대 재귀 깊이는 1,000으로 기본 설정 되어있다.
#해결방법
import sys
sys.setrecursionlimit(10**5)
3) math 라이브러리 사용
import math
math.factorial(n) # n!
# print(math.factorial(n))
+) 코드 실행 시간 측정 후 비교
· 10000! 기준
1. 반복문 : 0.03482 sec
2. 재귀 : 0.04213 sec
3. math : 0.01921sec
'Python' 카테고리의 다른 글
python; 위 원과 아래 원 크기가 다른 원기둥(원뿔대) 부피 구하기 (정적분 회전체 체적 활용) (0) | 2022.08.02 |
---|---|
python; 숫자 계단 응용(n까지 늘어났다 줄어드는 계단) 출력 (0) | 2022.06.14 |
python; 엔터('\n') 기준으로 여러개 리스트에 input() 입력 받기 (1) | 2022.04.24 |
python; 숫자를 자릿수 기준으로 분류(분리)해서 배열 만들기 (0) | 2022.04.12 |
python; 등차수열 n 번째 항구하기, n1항부터 n2항까지 합 구하기 (0) | 2022.04.12 |
댓글