링크 :
문제 설명 :
더보기
자연수 N과 정수 K가 주어졌을 때 이항 계수 를 구하는 프로그램을 작성하시오.
입력 :
더보기
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 0 ≤ K ≤ )
출력 :
더보기
N C K를 출력한다
예제 입력 :
더보기
5 2
예제 출력 :
더보기
10
접근법 :
1) 어떻게 풀 것인가?
2) 시간복잡도
3) 공간복잡도
4) 풀면서 놓쳤던점
5) 이 문제를 통해 얻어갈 것
Java 코드 :
import java.io.*;
import java.util.*;
// 이항계수1 11050
public class Main {
static int N, K;
public static void main(String[] args) throws IOException {
// 1. 입력
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
// 2. 팩토리얼 통한 nCk 구하기
sb.append( factorial(N) / (factorial(K) * factorial(N-K) )) ;
// 3. 출력
System.out.println(sb.toString());
br.close();
}
static int factorial(int N) {
if (N<=1) {
return 1;
}
return N * factorial(N-1);
}
}
C++ 코드 :
#if 1
#pragma warning(disable:4996)
#include <cstdio>
int N, K; // 이항계수 NCK
int factorial(int N);
int main() {
scanf("%d %d", &N, &K);
printf("%d", factorial(N) / (factorial(K) * factorial(N - K)));
return 0;
}
int factorial(int N) {
if (N == 0) {
return 1;
}
return N * factorial(N - 1);
}
#endif
반응형
'알고리즘 Algorithm > BOJ 백준 (초급~중급)' 카테고리의 다른 글
[BOJ 백준] 다리 놓기(1010) C++, Java (0) | 2023.01.13 |
---|---|
[BOJ 백준] 이항 계수 2(11051) C++, Java (0) | 2023.01.13 |
[BOJ 백준] 소수를 분수로(5376) C++ (0) | 2023.01.13 |
[BOJ 백준] 수학은 너무 쉬워(2904) C++, Java (0) | 2023.01.12 |
[BOJ 백준] 30(10610) C++ (0) | 2023.01.12 |