Recursion - 재귀함수

yoneeki·2022년 12월 30일
0

DSA기초

목록 보기
8/12
public int fac(int n) {
		if(n == 1) return 1;
		return n * factorial(n-1);
	}
  • 팩토리얼 4!를 계산한다고 생각해보자
  • 저 메서드의 풀이과정을 적어보면
fac(4) 
= 4 * fac(3)
= 4 * 3 * fac(2)
= 4 * 3 * 2 * fac(1)
  • 1인 경우에 함수가 끝나야 한다.
  • 살펴보면 return 안에서 또 메서드가 실행되고 실행된다.
  • 이 경우 call stack
1!
2!
3!
4!
  • 참고로 재귀함수는 call stack 을 발생시키기 때문에 return이 없거나 혹은 반복문의 조건절이 영원히 true인 경우, 그 유명한 stack-over-flow 를 발생시킨다.
profile
Working Abroad ...

0개의 댓글

관련 채용 정보