JAVA/Coding Test

[JAVA] 백준 10872 팩토리얼_재귀함수

오늘도개발 2023. 2. 28. 20:14

https://www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

접근 :

 

- N 을 받았을 때, 1이하 일 때에는 1을 결과로 출력

 

- 1 보다 큰 N 일 때, N을 곱하고 N이 1이 될 때까지  1 씩 감소 시키며 같은 과정을 반복

 

- 해당 과정을 재귀함수로 구현

 

 

main에서 factorial 메서드 호출시 다음과 같은 시퀀스가 일어남. (n = 5 일때, 예시) 

 

 

 

 

 

 

 

 

 

코드 구현:

 

public class Main {

	public static int factorial(int n, int result) {
		
		if (n <= 1) {
			return result;
		}

		return factorial(n - 1, n * result);
	}

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int n = Integer.parseInt(br.readLine());

		// 결과 화면출력
		System.out.println(factorial(n, 1));
		br.close();
	}
}