함수를 이용한 재귀호출로 팩토리얼 구하기

psj0810·2020년 9월 28일
0

Python

목록 보기
7/29

재귀호출이란 함수안에서 함수 자기 자신을 호출하는방식을 말한다.
팩토리얼은 1부터 n까지 양의 정수를 차례대로 곱한 값이며 ! 기호로 표기한다.
예를들어 5!는 5*4*3*2*1이며 결과는 120이다.

아래의 코드는 재귀호출을 이용하여 팩토리얼을 나타내는 방법이다.

def factorial(n):
    if n == 1:
        return 1 
    return n * factorial(n-1)

print(factorial(5))

결과 120



해석
factorial(5) == 5*factorial(4)
첫줄을 설명하자면 return값에 따라 5*factorial(4)가 나오게 된다. 다시 factorial(4)에 들어가서 return값을 구하고 이렇게 자동으로 연속적인 계산이 실행된다.

factorial(4) == 4*factorial(3)
factorial(3) == 3*factorial(2)
factorial(2) == 2*factorial(1)
factorial(1) == 1

이렇게 먼저 순차적으로 값이나온다
나온값에 따라 아래부터 값이 다시 순차적으로 대입되면


factorial(1) == 1
factorial(2) == 2*factorial(1) == 2*1 == 2
factorial(3) == 3*factorial(2) == 3*2 == 6
factorial(4) == 4*factorial(3) == 4*6 == 24
factorial(5) == 5*factorial(4) == 5*24 == 120

그래서 결과는 120이된다.

profile
백엔드개발자

0개의 댓글