본문 바로가기

Java/Java 알고리즘 인프런

[Ch.07 - Recursive] 03. 팩토리얼

728x90
반응형

3. 팩토리얼

자연수 N이 입력되면 N!를 구하는 프로그램을 작성하세요.

(ex. 5! = 5*4*3*2*1= 120)

 

입력설명

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

 

출력설명

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

 

입력예제

5

 

출력예제

120

 


package recursive.ch07_3;

import java.util.Scanner;

public class Recursive03 {
	private static int answer=1;
	public static void main(String[] args) {
		Scanner kb= new Scanner(System.in);
		int n=kb.nextInt();
		solution(n);
	}
	
	static void solution(int n) {
		DFS(n);
		System.out.println(answer);
	}
	static void DFS(int n ) {
		
		if(n==0) {
			return;
		}
		else {
			DFS(n-1);
			answer*=n;
		}
			
	}

}

 

 

+) 세련된 풀이

package recursive.ch07;

import java.util.Scanner;

class Recursive03 {
	// 팩토리얼
	// n!

	public static void main(String[] args) {
		Scanner kb = new Scanner(System.in);
		int n = kb.nextInt();
		DFS(n);

	}

	static int DFS(int n) {
		if (n == 1)
			return 1;
		// 마지막은 항상1
		else
			return n * DFS(n - 1);
		// 5-> 5*DFS(4)-> 1*2*3*4*5
	}
}
728x90
반응형