Recursive Function 재귀함수
: 어떠한 함수 정의 내에서 자기 자신 함수를 호춢
단점은 속도가 느리고 기억장소 소비가 많다
장점은 알고리즘을 작성하거나 이해하기 쉽다
+ ) 자동할당 메카니즘에 대한 이해가 필요하다
ex) 피보나치 수열
피보나치 수열 f(n)의 정의
f(n) = f(n-1) + f(n-2) when n >= 2
f(1) = 1
f(0) = 1
class Test //클래스명은 대문자로 시작
{
static int f(int n)
{
if ( n == 0) return 1;
if ( n == 1) return 1;
if ( n >= 2)
{
return f(n-1) + f(n-2);
}
return -1;
}
public static void main(String[] args)
{
for(int i = 0; i < 10; i++) {
System.out.println("f(" + i + ") = " + f(i));
}
}
}
//f(n) = f(n-1) + f(n-2) when n >= 2
//f(1) = 1
//f(0) = 1
//클래스명과 파일명이 일치해야한다.