Algorithm/기타

[백준 11050번] 이항 계수 1

agility 2019. 12. 28. 04:05

백준알고리즘 11050번 : 이항 계수 1

 

이항 계수가 뭔지 몰라서 검색해봤는데,

5C1 10C7 뭐 이런거였다.

보니까 알겠다.

 

5C1 = 5!/4!1!

10C7 = 10!/7!3!

 

수학 문제에서도 이런 이항 계수 문제를 풀때면,

10C7 은 10!/7! 에 3!을 나눈것이니까,

10*9*8 / 3! 로 계산을 해주면 된다.

단, 10C0 처럼 뒷 자리가 0인 경우에는 값이 무조건 1이되는 것을 조건에 넣어줘야한다.

 

풀이 과정


1. N과 K값을 받고, N부터 N-K까지의 값을 하나씩 곱해준다.
2. 이를 K부터 K-1, K-2, ... 1까지 곱한 값으로 나눠준다.
3. 계산한 결과를 출력하되, K가 0인경우에는 1을 출력한다.

 

 

 

<< 백준알고리즘 11050번 반례 >>

      10 0

 

 

 

 

소스 ▽

더보기
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int a = sc.nextInt();
		int b = sc.nextInt();
		
		int c = a-b;// a!/c!b!
		
		int ans = 1;
		
		if (b==0) {
			System.out.println(1);
		}else {
			
			while (a!=c) {
				ans *=a;
				a--;
			}
			while (b!=1) {
				ans /= b;
				b--;
			}
			
			System.out.println(ans);
		}
	}

}