Algorithm | 팩토리얼(Factorial)

DoItDev·2021년 10월 14일
0
post-thumbnail

팩토리얼(Factorial)과 계승

Note:

  • 순열은 n개의 항목 중이서 r개를 선택하여 줄을 세우고 식으로 쓰면 nPr 이라고한다.
  • 예를 들면 5P5 은 5 * 4 * 3 * 2 * 1 와 같이 식이 정의 된다.
  • 거꾸로 보면 1부터 n 까지 곱하게 되는데 이를 n의 계승 이라고하고 기호를 n! 이라고 사용한다.
  • 그리고 n 팩토리얼 이라고 부른다.
  • n! = nPn = 1 * 2 * 3 * (n-2) * (n-1) * n 과 같이 식을 정의 한다.

For Java

JAVA에서 팩토리어를 구현 하기 위해서는 재귀를 사용을 해야한다.

위의 팩토릴얼 식에서는 N 값이 있다면 N * (N - 1) * (N - 2) * ... * 1

이런 식으로 식을 구한다.

그렇다면 재귀 프로그래스 함수에서는 반복적인 함수의 호출을 이용한다.

그리고 n - 1 씩 감소되게 인자를 -1값씩 감소하게 개발을 한다.

후에 stop 조건식을 만들어 주어야 한다.

stop의 조건의 경우 n 이 계속해서 -1 로 감소가 되기 때문에 어느 순간에는 1 이 될것이다.

그렇게 때문에 1 과 같을 때 함수의 재호출을 stop 시켜주면 된다.

public class Factorial {

    public static void main(String[] args) {
        int input = 4;
        int result = progress(input);
        System.out.println("Result :: " + result);
    }

    public static int progress(int n) {

        System.out.println(n);

        if (n <= 1) {
            return n;
        }


        return progress(n - 1) * n;
    }

}

위의 자바코드를 실행을 했을때 4 팩토리얼을 하였기 때문에 4 , 3, 2, 1 이 콘솔에 찍히고

1이 될때 stop 된다. 계속 나열된 n 을 곱해 주기 때문에 4 * 3 * 2 * 1 이런식으로 작성이 된다.

화면 캡처 2021-10-13 121603

profile
Back-End Engineer

0개의 댓글