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