BOJ 11050 이항계수 [Java]
문제
접근방법
- 재귀 팩토리얼로 가장 기본적으로 잘 풀린다.
- 유의 및 이 게시글을 쓴 이유) 반복으로도 풀려고 하였는데, 계속 채점 결과가 오답이 나왔다. 그 이유는 K가 0인 경우를 고려하지 않아서이다..... 조심하자!
구현
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
// for coding
// System.setIn(new FileInputStream("./input/input_11050.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ", false);
int top = Integer.parseInt(st.nextToken());
int bottom = Integer.parseInt(st.nextToken());
if (bottom != 0) {
int cnt = bottom;
int resTop = top;
int resBottom = bottom;
// 반복 이항계수
for (int i = 1; i < cnt; i++) {
resTop *= (--top);
resBottom *= (--bottom);
}
bw.write(resTop / resBottom + "");
}
else {
bw.write("1");
}
// 재귀 팩토리얼로
//bw.write(factorial(top) / (factorial(bottom) * factorial(top - bottom)) + "");
bw.close();
}
// 재귀 팩토리얼로
// static int factorial(int N) {
// if (N == 0) {
// return 1;
// }
// return N * factorial(N - 1);
// }
}
제출
Author And Source
이 문제에 관하여(BOJ 11050 이항계수 [Java]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sheltonwon/BOJ-11050-스택-Java저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)