반응형
재귀함수
함수 안에서 자기 자신을 호출하는 함수
오늘의 연습 재귀함수로 팩토리얼 계산하는 함수 만들기 +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 |