잡동산이

재귀 호출

IT Study/Java2012. 10. 2. 13:52

재귀 메소드의 활용.

1. 재귀적 사고는 복잡한 문제를 간결하게 해결하는 열쇠가 된다.

2. 수백 줄 이상의 코드가 요구되는 문제를 불과 수십 줄의 코드로 해결할 수 있다.

 

재귀 메소드를 활용하기 위한 주의사항.

1. 재귀의 연결 고리를 끊기 위한 조건 검사의 위치가 적절해야 한다.

2. 재귀의 연결 고리를 끊기 위한 조건 검사가 true가 되도록 적절한 연산이 이뤄져야 한다.

 

--  재귀 메소드 정의 --

 

public class Reculfactorial {

 public static void main(String[] args) {

  System.out.println("3 factorial : " + factorial(3));
  System.out.println("12 factorial : " + factorial(12));
  
 }

 public static int factorial(int n)
 {
  if(n==1)
 return 1;
  else
   return n*factorial(n-1);
 }
 
}

 

수학적 방식의 팩토리얼

5! = 5*4*3*2*1            ==        5! = 5 * 4!

4! = 4*3*2*1               ==        4! = 4 * 3!

3! = 3*2*1                  ==       3! = 3 * 2!

2! = 2*1                     ==        2! = 2 * 1!

1! = 1                        = =       1! = 1

 

 

-- 잘못된 재귀 메소드의 정의의 예 --

 

public class InfRecul {

 
 public static void main(String[] args) {

 showHi(3);
 }

 public static void showHi(int cnt)
 {
  
  System.out.println("Hi~ ");
  showHi(cnt--); //후감소이고 출력후 계속 3으로 초기화 되므로 에러;
  if(cnt==1)
   return;
  
    
 }
}

 

 

 

'IT Study > Java' 카테고리의 다른 글

자바 리눅스 루프백 아이피를 알아내는 방법  (0) 2014.11.28
자바 인터페이스 요약 정리  (0) 2014.11.25
스트럿츠 프레임워크  (0) 2014.11.25