2020. 7. 2. 14:01

재귀(Recursive) 함수

팩토리얼(!)의 가장 기본적인 형태는 아래처럼 for 구문으로 구현이 가능합니다.

for (long i = startNum ; i >= 1 ; i--) {
    calcNum *= i ;
}

이걸 재귀방식으로 바꾼 코드. 재귀 함수의 가장 간단하고, 대표적인 예제

public void displayFactorials() {
    System.out.printf("5! = %d\n", factorial(5)) ;
}

public long factorial(long number) {
	if (number <= 0) {
        return 1 ;
	}

    return number * factorial(number - 1) ;
}

또 다른 예제로는 피보나치 수열도 있습니다.

public void displayFibonacci() {
    for (int incNum = 0 ; incNum <= 10 ; incNum++) {
        System.out.printf("피보나치 수열 결과 : %d = %d\n", incNum, fibonacci(incNum)) ;
    }
}

public long fibonacci(long seqNum) {
    if ((seqNum == 0) || (seqNum == 1)) {
        return seqNum ;
    }
    else {
        return fibonacci(seqNum - 1) + fibonacci(seqNum - 2) ;
    }
}	
 

파이썬 터틀그래픽 코흐 곡선 그리기

Koch 곡선은 카오스 이론 중에서 해안가 지형을 설명할때 나오곤 합니다. 이 코드에서는 재귀(recursive) 함수가 등장합니다. 결과는 이렇게 나옵니다. 재귀(Recursive) 함수

dynamide.tistory.com