til/Java
재귀 호출(recursive call)
값진
2022. 3. 21. 14:03
재귀 호출(recursive call)
- 메소드 내부에서 해당 메소드가 또다시 호출되는 것
* 자기가 자신을 계속해서 호출하는 반복을 막기 위해 재귀 호출을 중단 명령문을 포함한다.
1 + N 까지의 합계 출력
public class Recursive {
public static void main(String[] args) {
Print(5); //출력 메소드 호출
}
//출력 메소드
public static void Print(int n)
{
// n이 0인 경우 return
if(n == 0)
return;
System.out.println("재귀함수");
Recursive(n-1); // 재귀함수 시작
}
}
n이 0이 될 때 메소드를 끝낸다.
함수를 호출할 때 마다 n에서 1씩 빼서 재귀함수를 종료하게 만든다.
피보나치 수열
public class FibonacciFunction {
public static void main(String[] args) {
int n = 10;
for(int i = 0; i < n; i++)
System.out.print(Fibonacci(i) + " ");
}
// 피보나치 수열의 결과를 구하는 메소드
public static int Fibonacci(int n)
{
if(n == 0)
return 0;
if(n == 1 || n == 2)
return 1;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}\
재귀함수를 사용한 N = (N - 1) + (N - 2) 의 계산