문제
접근방법
- 재귀 팩토리얼로 가장 기본적으로 잘 풀린다.
- 유의 및 이 게시글을 쓴 이유) 반복으로도 풀려고 하였는데, 계속 채점 결과가 오답이 나왔다. 그 이유는 K가 0인 경우를 고려하지 않아서이다..... 조심하자!
구현
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws Exception {
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.close();
}
}
제출