프로그래밍언어/자료구조 및 알고리즘

[Python] 재귀함수 간단예제 - 팩토리얼 구현

shoney9254 2021. 9. 9. 12:10
반응형

재귀함수는 함수에서 자신을 다시 호출하면서 반복하는 함수를 말합니다.

 

재귀함수를 사용하지 않고 팩토리얼을 구현해보고,

 

재귀함수를 사용해서 팩토리얼을 구현해보도록 합니다. 

 

재귀함수의 일반적인 형태는 아래와 같습니다. 

 

종료 조건을 충분히 작은 조건을 넣어서 종료가 되도록 구현해한다. (종료 조건이 없으면 무한루프)

 

재귀함수 일반적인 형태

def func(입력 값):

    if 입력 값이 충분히 작으면 :  # 종료 조건

        return 결과값

 

    func(입력 값 보다 하나 작은 값)

 

    return 결과값

 

 

1. 재귀함수 없이 팩토리얼 구현

팩토리얼은 5! 이라고 하면 1x2x3x4x5 = 120 입니다. 

소스 코드

# 1.재귀함수 사용 없는 팩토리얼

def fact(n):

    f = 1

    for i in range(1,n+1):

        f=f*i

    return f

 

print(fact(5))

 

결과

120

 

2. 재귀함수를 사용해서 팩토리얼 구현

 일단 함수의 최소값일때 return 하는 부분을 먼저 만들어 줘야합니다. (종료값 없으면 무한루프)

1! = 1

2! = 2x1!

3! = 3x2!

4! = 4x3!

n! = nxn!

이런 순서로 이루어져 있다. 그래서 fact3 함수를 통해 값을 구하도록 재귀함수를 구현한다. 

소스 코드

# 2.재귀함수 사용 팩토리얼

def fact2(n):

    if n ==1:

        return 1

    

    result = n * fact2(n-1)

 

    return result

 

print(fact2(5))

결과

120

 

 

 

반응형