팩토리얼

문제

자연수 N이 입력되면 N!를 구하는 프로그램을 작성하세요. 예를 들어 5! = 54321=120입니다.

입력

첫 번째 줄에 자연수 N(1<=N<=10)이 주어집니다.

출력

첫 번째 줄에 N팩토리얼 값을 출력합니다.

입력예제

5

출력예제

120

해결방법

  • return 구문에도 재귀 함수를 적용하여 푸는게 가능하다.
  • 리턴이 거꾸로 올라오는 형태

코드

import java.util.*;

class Main {
    public int DFS(int n) {
        // 1! 이면 1이기 때문에 리턴한다.
        if (n == 1) return 1;
        // 1을 뺀 수를 파라미터로 하여 다시 재귀 호출 한다.
        // 첫 5가 주어졌을 때, 리턴은 n * DFS(4) 인데 리턴이 되려면 계산이 되어야 하므로
        // DFS(4)를 호출한다. 호출 구조를 보면 아래와 같이 된다.
        // 5 * 4 -> DFS(4)
        // 5 * 4 * 3 -> DFS(3) ...
        // 즉, 팩토리얼 연산과 동일하다.
        else return n * DFS(n - 1);
    }

    public static void main(String[] args) {
        Main.Main T = new Main.Main();
        System.out.println(T.DFS(5));
    }
}


© 2024. Chiptune93 All rights reserved.