🌱 재귀 함수
자신의 함수 내부에서 자기 자신을 스스로 호출함으로써 재귀적으로 문제를 해결하는 함수
🌱 예제1 : 팩토리얼 함수
public class Main {
public static int factorial(int num){
if(num == 1) return 1;
else
return num * factorial(num-1);
}
public static void main(String[] args) {
System.out.println("3 팩토리얼은 "+factorial(3));
}
}
main 메소드에서 factorial(3) 호출
factorial 메소드에서 num은 3이므로 else문 진행
▶ return 3 * factorial(2);
2의 리턴값에서 factorial(2) 호출
▶ factorial 메소드에서 num은 2이므로 else문 진행
▶ return 2 * factorial(1);
3의 리턴값에서 factorial(1) 호출
▶ factorial 메소드에서 num은 1이므로 if문 진행
▶ return 1;
최종 리턴값을 가지고 지금까지 거쳐온 과정을 거슬러 올라가면 된다.
▶ return 1
▶ return 2 ✖ factorial(1) = return 2 ✖ 1
▶ return 3 ✖ factorial(2) = return 3 ✖ 2 ✖ 1
▶ 6
3 팩토리얼은 6