본문 바로가기

플밍 is 뭔들/알고리즘

순환(RECURSION)의 개념과 기본 예제1

※ RECURSION?
 - 자기 자신을 다시 호출하는 메소드(재귀함수)
 - 무한루프에 빠질 수 있으므로 적어도 하나의 breaking point를 만들어준다. (Base Case)
 - recursion을 반복하다보면 결국 base case로 수렴해야 한다(Recursive Case)

※ 예제
 - Factorial(n!) 
public class factorial {
       
       public static void main(String[] args) {
              
              int iResult = fn_factorial(5);
              System.out.println(iResult);
       }
       
       public static int fn_factorial(int n){
              
              if(n==1){
                     return 1;
              }else{
                     return n*fn_factorial(n-1);
              }
       }
}



 
- Fibonacci Number
public class fibonacci {
       
       public static void main(String[] args) {
              
              int iResult = fn_fibonacci(5);
              System.out.println(iResult);
       }
       
       public static int fn_fibonacci(int n){
              
              if(n<2){
                     return n;
              }else{
                     return fn_fibonacci(n-1) + fn_fibonacci(n-2);
              }
       }
}
*위의 함수는 피보나치의 수열 중 n번째의 숫자는 무엇인가를 구하는 함수이다.