https://www.acmicpc.net/problem/11050
[문제]
자연수 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 |