[백준 10872] 팩토리얼 (자바)
알고리즘/백준

[백준 10872] 팩토리얼 (자바)

반응형

백준 10872번 팩토리얼 (자바)

 

 

출처

www.acmicpc.net/problem/10872

 

10872번: 팩토리얼

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

www.acmicpc.net

 

 

 

문제

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

 

 

 

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다.

 

 

 

출력

첫째 줄에 N!을 출력한다.

 

 

 

 

입출력 예

입출력 예 1

 

 

 

풀이 방법

1. 팩토리얼의 기본 구조를 이해한다. (ex) 5*4*3*2*1)

2. -1값을 계속 곱해줘야 하므로 현재값*현재값-1을 재귀로 표현한다.

 

 

 

내 코드

package reflection;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Factorial {
	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(read.readLine());
		
		System.out.println(cycle(n));
		
	}

	private static int cycle(int n) {
		
		if (n <= 1) {
			//0!은 1이다
			return 1;
		} 
		
		return cycle(n-1) * n;
		
	}
}

 

 

고려할 점

1. 재귀를 사용할 것

2. 0!은 1이다.

3. 재귀를 통해 n-1 곱하기를 표현할 것

 

 

 

반응형