백준

[백준_11050번] 이항 계수1

빙수빈수 2021. 6. 29. 17:49

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

 

11050번: 이항 계수 1

첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

[문제]

 자연수 N과 정수 K가 주어졌을 때 이항 계수 (NK)를 구하는 프로그램을 작성하시오.

 

[입력 조건]

 첫째 줄에 N K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K  N)

 

[코드]

import java.util.*;

/*
 * 이항 계수 공식
 * nCr = n! / r!(n-r)! 
 */
public class BeakJoon_11050 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int k=sc.nextInt();
		
		System.out.println(factorial(n)/(factorial(k)*factorial(n-k)));
	}
	// 팩토리얼 계산 함수
	public static int factorial(int n) {
		if(n==0)
			return 1;
		return n*factorial(n-1);
	}
}

 

[고찰]

이항 계수 공식인 nCr = n! / r!(n-r)!의 의미만 알고 있다면 쉽게 해결할 수 있는 문제였다. n!이란 n부터 1까지의 곱을 의미한다. 이러한 기능을 수행하는 함수만 잘 구현한다면 짧고 간결하게 코드를 구성할 수 있다.

'백준' 카테고리의 다른 글

[백준_1676번] 팩토리얼 0의 개수  (0) 2021.06.29
[백준_1010번] 다리 놓기  (0) 2021.06.29
[백준_9251번] LCS  (0) 2021.06.29
[백준_3036번] 링  (0) 2021.06.29
[백준_1943번] 최소공배수  (0) 2021.06.29