글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

자바의 재귀함수에 대해 이해한다.


 

 

 

코드
package ex05method;
/*
 재귀함수(Recursive method)
 		: 하나의 함수에서 자신을 다시 호출하여 작업을 
 		수행하는 방식으로 문제를 해결하는 함수를 말한다.
 */

public class E08RecursiveMethod {

	static int factorial(int number) {
		int result;
		if(number == 1) {
			result = 1;
		}
		else {
			result = number * factorial(number-1);
		}
		
		System.out.println("계산과정 : nubmer=" + number + ",result = " + result);
		return result;
		
	}
	
	
	public static void main(String[] args) {
		System.out.println("재귀함수를 이용한 팩토리얼 구하기");
		System.out.println("4factorial     " + factorial(4));
		System.out.println("10factorial    " + factorial(10));
	}

}

 

재귀함수는 함수 안에서 자기 자신의 함수를 불러오는 것을 말합니다. 로직이 생각보다 직관적이 못해서 많이 사용하지는 않습니다. 하지만 알고는 있어야 합니다. 무한루프에 빠지지 않는것에 주의하면서 코드를 짜야합니다. 이코드는 매개변수가 1일때 바로 return한다는 코드가 있기 때문에 무한루프로 들어가지 않는것이다.

 

대충 이런 로직이다.

 

f(x)는 Factorial함수를 의미한다. 열심히 내가 파워포인트로 만들었는데 이해가 잘 될지 모르겠다.

 

 

 

결과 값