문제설명
자연수 n과 정수 k를 입력받고 nCk를 구하는 프로그램입니다.
작동 순서
1. n과 k를 입력받습니다.
2. k가 0이 아닌 경우 이항계수를 구하는 공식인 n!/k!(n-k)!에 n과 k를 대입해서 답을 구합니다.
3. k가 0인 경우 1을 출력합니다.(k가 0인경우에는 n!/k!(n-k)!가 n!/n!이 되기 때문에 1이 나온다.)
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 백준_11050번_이항계수1 {
public static int factorial(int n){
if (n==0)
return 1;
else
return n*factorial(n-1);
}
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(br.readLine());
int N=Integer.parseInt(st.nextToken());
int K=Integer.parseInt(st.nextToken());
int count=0;
if(K!=0)
System.out.printf("%d", factorial(N) / (factorial(K) * factorial(N - K)));
else
System.out.printf("1");
}
}
후기
자바 문법을 공부하면서 쉬운 문제들을 풀어보고 있는데 예전에 배운 수학들도 잘 기억나지 않아서 어려움을 많이 겪는 것 같습니다. 앞으로 시간이 되면 수학을 기초부터 다져야할 것 같습니다.