HiDevelop

[Java] 재귀 메소드 본문

Java

[Java] 재귀 메소드

꽃달린감나무 2021. 11. 17. 16:25
728x90

재귀함수는 문제를 해결할 때 함수 내부에서 자기 자신을 호출하여 문제를 해결하는 함수입니다. 예를 들어 2의 4승을 표현할 때

1)  2^4 = 2*2*2*2

 

2)  2^4 = 2*2^3

    2^3 = 2*2^2

    2^2 = 2*2^1

    2^1 = 2

두 가지 방법으로 표현할 수 있습니다. 저희가 여기서 눈 여겨 봐야할 표현방법은 2번입니다. Square를 구할 때 Square를 통해 구하는 방법이 바로 재귀입니다. 

public class Nsquare {
	
	public static int nSquare(int n) { // 정수 n을 입력받아 2^n을 곱하는 메소드
		
		int count = 0;
		++count;  //count++을 할 경우 메소드가 끝나야지 값이 증가하기 때문에 재귀함수가 끝나지 않으므로 ++count를 사용
		if(count == n) // 재귀의 종료조건, 종료조건은 재귀의 연결고리를 끊기 위해 재귀호출보다 앞에 위치하는 것이 좋다.
			return 2;
		return 2*nSquare(n-1); // 재귀를 통해 구해진다.
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println(nSquare(3));
	}

}

여기서 주의할 점 있습니다.

재귀함수는 함수를 계속해서 호출하기 때문에 반드시 종료조건이 있어야 합니다! 또한 이 종료조건은 매 과정마다 확인되어야 하기 때문에 재귀를 호출하는 명령문 보다 앞에 있어야 합니다.

728x90

'Java' 카테고리의 다른 글

[Java]Static  (0) 2021.12.21
[Java] 클래스의 정의와 인스턴스  (0) 2021.11.20
[Java] 원의 넓이와 둘레 구하기 && 소수 판별하기  (0) 2021.11.16
[Java] StringBuilder Method  (0) 2021.11.13
[JAVA]Math.min/max Method  (0) 2021.11.05