프로그래밍/Python
[Python] factorial(팩토리얼) 구현하기
내일주말
2020. 12. 17. 14:09
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)))