재귀함수를 이용한 간단한 지수, 곱셈함수
※ 재귀 함수를 이용한 지수함수
- 프로그래밍으로 표현해서 예를 들면 pow(2, 3)와 같은 n, m 값을 받으면 n의 m제곱에
해당하는 결과를 출력해주는 함수를 재귀함수를 이용해서 만들면 된다
- 재귀 함수에 동작 방식은 함수에 n, m에 2, 3을 입력 받으면
if 문을 통과해서 return 2 * recursion_pow(2, 2) 가 되면서 곱셈을 하기전에
다시 자기자신인 recursion_pow 함수에 n, m 값을 2, 2로 주면서 호출하게 된다.
이런식으로 자기자신인 recursion_pow를 호출하는 반복을 m값이 0이 될때까지 한다.
m값이 0이 되면 if 조건은 False가 되기때문에 else 문으로 들어가서
return 1을 반환해준다.
그 return 값을 받아서 그전까지 계속 재귀함수를 통해 호출되었던 함수들은 아직 각자의
if문이 끝나지 않은 상태이기 때문에 가장 안쪽에서부터 차례대로 return 값을 받아
return n * recursion_pow(n, m-1)를 계산해 자신을 호출했던 함수에게 return 값을 보내준다.
재귀 함수를 사용할때는 재귀 함수 호출이 멈출수 있도록 생각을 잘해서
코드를 작성해줘야 무한 루프가 되는걸 막을수 있다.
실행기를 통해 결과를 확인해보면 정상적으로 나온다
간단한 함수이지만 재귀함수에 동작을 이해하기에 좋은것 같다.
아래는 위와 같은 재귀함수의 동작방식을 이용해서
간단한 곱셈 함수를 만든 코드이다.
※ 재귀 함수를 이용한 곱셈함수
( 실행 결과도 정상적으로 잘 나온다 )
'프로그래밍 > PYTHON' 카테고리의 다른 글
[12일차] python 정렬 알고리즘(Sorting algorithm) (0) | 2017.02.23 |
---|---|
[11일차] python 꼬리 재귀함수 (0) | 2017.02.23 |
[10일차] 포맷 스트링(지정자) / 재귀함수(recursion function) / map() (0) | 2017.02.21 |
[9일차] python for 문법 (0) | 2017.02.20 |
[8일차] python 모듈 / testcode (0) | 2017.02.17 |
댓글