[JAVA]/JAVA 기본
[JAVA] 재귀 함수
팡펑퐁
2022. 9. 20. 19:33
728x90
재귀 함수
함수가 자기 자신을 직간접적으로 호출하는 함수를 말한다.
재귀 함수의 장점
- 반복문을 여러개 사용하지 않고 코드를 간결하게 작성할 수 있다.
- 수정이 용이하다.
- 변수를 여러 개 사용하지 않아도 된다.
재귀 함수의 단점
- 반복문과 달리 코드의 직관성이 떨어진다.
- 반복문에 비해 메모리를 많이 사용한다.(반복하여 메서드를 호출하여 전부 process stack에 저장하기때문)
- 메서드 호출 이후 복귀를 할 때 컨텍스트 스위칭 비용이 발생한다.
재귀함수를 사용하기 위한 조건
- 문제의 크기를 작은 단위로 나눌 수 있다.
- 재귀 함수의 호출을 종료하는 시점이 존재해야 한다.
<코드 예시>
import java.util.Scanner;
public class Main {
public static void Gugudan(int num, int i) {
if (i > 9) return;
System.out.printf("%d * %d = %d%n",i, num, i * num);
Gugudan(num, ++i);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int i = 1;
Gugudan(num, i);
}
}
// 출력값
9 <- 입력
1 * 9 = 9
2 * 9 = 18
3 * 9 = 27
4 * 9 = 36
5 * 9 = 45
6 * 9 = 54
7 * 9 = 63
8 * 9 = 72
9 * 9 = 81
728x90