재귀함수

함수 안에서 자기 자신을 호출하는 함수

오늘의 연습 재귀함수로 팩토리얼 계산하는 함수 만들기 +for문을 활용한 팩토리얼 계산

최종코드

# 재귀함수 연습 01 팩토리얼 계산해보기

# 재귀함수를 이용한 팩토리얼 계산 함수
def fac (num):
    gap = num
    if num <= 1:
        return gap
    else:
        gap = gap * fac(num-1)
        return gap

# 반복문으로 팩토리얼 계산
def fac_for (num):
    gap = 1
    for i in range(num):
        gap += gap * i
    return gap

factorial = int(input())

print(fac(factorial))
print(fac_for(factorial))

일단 재귀함수를 연습하기 좋다는 팩토리얼 계산 법을 만들어봤는데...!

내가 짠 코드대로라면 일단 for문의 코드 줄이 조금 더 짧다!

아직 반복문에 더 익숙해져 있다보니 반복문으로 짜는게 더 쉽기도 하고... 하지만 연습을 위해 재귀함수를 다른 경우에도 사용해서 코드를 만들어봐야할 것 같다

문제에 따라 재귀함수가 더 효율적일 수 있고, 반복문을 사용하는게 더 효율적일 수도 있다

if num <= 1:
return gap

base case

재귀함수에는 반드시 함수를 빠져나갈 수 있는 base case가 존재해야한다 base case가 존재하지 않으면 무한반복에 걸린다...! 여기서 나는

if num <= 1:

    return gap

으로 받은 숫자에서 계속 1씩 작아지며 연산하다가 결국 값이 1이 되는 순간 함수를 빠져나가도록 했다

해당 함수에서 '<'는 필요 없지만 혹시 내가 낼지도 모르는 오류를 대비해서 '<'를 입력해뒀다 <= >= 가 습관이기도 하구,,,ㅎㅎ

반응형

'study > python' 카테고리의 다른 글

python) list append() 와 extend() 비교하기  (0) 2021.08.01
python) list에서 사용할 수 있는 메서드 정리  (0) 2021.08.01
python) 369 게임 만들어보기  (0) 2021.07.29
python) any()함수  (0) 2021.07.26
python) min / max 함수  (0) 2021.07.26

+ Recent posts