백준
[백준_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까지의 곱을 의미한다. 이러한 기능을 수행하는 함수만 잘 구현한다면 짧고 간결하게 코드를 구성할 수 있다.