수학공부를 안해서 그런가. 이항계수가 뭔지 몰라서 검색했다.


단순하게 생각하면 N 개의 숫자를 K 번 사용한 조합을 구하면 된다.


1. 공식이 있길래 그냥 썼다.

2. 풀어볼까?

3. 1 * 2 * 3 * 4 * 5 / (2 * 3 * 2 * 1)

4. = 120 / 12

5. = 10

6. 정리해보면

7. 1 ~ N 까지 돈다고 생각해보자

8. 그리고 그 숫자를 i 라고 하면 또 1 + i ~ N 까지 간다. ( 이 과정을 K 번 반복 )

9 그러면 공식이 나올거같은데 머리가 안돌아간다 ㅠ.ㅠ

import java.util.*;
import java.io.*;
/**
* https://www.acmicpc.net/contest/problem/11050
* BOJ 백준온라인져지 11050 이항 계수 1 풀이
*/
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str1[] = br.readLine().split(" ");
int N = Integer.parseInt(str1[0]);
int K = Integer.parseInt(str1[1]);
int result = 1;
// N! / (K! * (N - K)!)
for (int i = K + 1; i <= N; i++) result *= i;
for (int i = 2; i <= N - K; i++) result /= i;
bw.write(String.valueOf(result));
bw.flush();
}
}
view raw Main.java hosted with ❤ by GitHub

문제

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

입력

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

출력

 (NK)를 출력한다.


+ Recent posts