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)))

 

 

+ Recent posts