관리 메뉴

커리까지

자바 기초 프로그래밍 강좌 11강 - 반복 함수와 재귀 함수 ① 본문

자바

자바 기초 프로그래밍 강좌 11강 - 반복 함수와 재귀 함수 ①

목표는 커리 2021. 2. 19. 08:42
728x90
SMALL

반복함수

  • 단순히 while 혹은 for문법을 이용하여 특정한 처리를 반복하는 방식

재귀함수

  • 자신의 함수 내부에서 자기 자신을 스스로 호출함으로써 재귀적으로 문제를 해결

팩토리얼을 재귀 함수로 구현

  • 반복함수
public class Main {

    // 5! = 5 * 4 * 3 * 2 * 1 = 120
    public static int factorial(int number) {
        int sum = 1;
        for(int i = 2; i <= number; i++) {
            sum *= i;
        }return sum;
    }    

    public static void main(String[] args) {


            System.out.println("10 팩토리얼은 "+factorial(10));
    }

}
>
10 팩토리얼은 3628800    
  • 재귀함수
public class Main {

    // 5! = 5 * 4 * 3 * 2 * 1 = 120
    public static int factorial(int number) {
        if(number == 1)
            return 1;
        else
            return number * factorial(number - 1);
        // 5! = 5 * 4! 와 같고 
        // 5! =5 * 4 * 3와 같으니  계속 팩토리얼곱하기
    }    

    public static void main(String[] args) {


            System.out.println("10 팩토리얼은 "+factorial(10));
    }

}
>
10 팩토리얼은 3628800    
  • 5! = 5 * 4!
  • 5! = 5 * 4 * 3!
  • 5! = 5 * 4 * 3 * 2!
  • 5! = 5 * 4 * 3 * 2 * 1
  • 이러한 순서여서 1이 될때까지 계속 곱해나가면 된다.
  • 재귀는 어떠한 값이 들어가면 그 값이 필요한 가장 작은 단위까지 갔다가 거슬러 올라와서 본인 값이 완료되면 다음으로 넘어간다.
  • f(5)가 되려면 f(4)가 필요하고 f(4)는 f(3)이 필요하고 f(3)은 f(2)가 필요하고 f(2)는 f(1)이 필요하다. 이렇게 f(1)까지 구했으면 f(2)가 구해지고 그러면 f(5)까지 구할수 있다.
728x90
LIST
Comments