import math
# for문 이용
def fact1(n):
if n < 2:
return 1
else:
result = 1
for i in range(1, n+1, 1):
result *= i
return result
# 재귀함수 이용
def fact2(n):
if n < 2:
return 1
else:
return n * fact2(n-1)
# math 함수 이용
def fact3(n):
return math.factorial(n)
# 메모이제이션 이용
def fact4(n):
factList = []
if n < 2:
return 1
else:
for n in range(1, n+1):
factList.append(n * fact2(n-1))
return factList
a = int(input('n번째 값 입력 : '))
print("#for 이용")
print("n = {0} \nvalue = {1}".format(a,fact1(a)))
print()
print("#재귀함수 이용")
print("n = {0} \nvalue = {1}".format(a,fact2(a)))
print()
print("#math 함수")
print("n = {0} \nvalue = {1}".format(a,fact3(a)))
print()
print("#메모이제이션 함수")
print("n = {0} \nvalue = {1}".format(a,fact4(a)))
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 리스트에 해당 문자열 중복 확인 (0) | 2020.12.17 |
---|---|
[Python]피보나치 수열 구현하기 (0) | 2020.12.17 |
random 함수를 이용한 로또번호 생성기 (0) | 2019.09.30 |
파이썬 오라클 연동하기 (0) | 2019.09.30 |
파이썬 입력과 출력 (0) | 2019.09.16 |