개인공부용123 프로그래밍 블로그

[백준] 6591 본문

알고리즘문제

[백준] 6591

개인공부용123 2017. 5. 19. 21:17

어렵게 생각하지않고 손으로 계산하듯이 풀면 풀립니다

이때 nCr = nCn-r 이 될수있음을 이용해서 n-r < r 이면 nCn-r을 이용해서 연산횟수를 줄일수 있습니다.



#include <iostream>
using namespace std;
typedef long long ll;



int main() {
	std::ios::sync_with_stdio(false);
	ll n, k;

	while (true) {
		cin >> n >> k;

		if (n == 0 && k == 0) break;

		if (n - k < k) k = n - k;

		ll Answer = 1;
		for (ll i = 1; i <= k; ++i) {
			Answer *= n - i + 1;
			Answer /= i;
		}
		
		cout << Answer << endl;
	}

	return 0;
}


'알고리즘문제' 카테고리의 다른 글

[백준] boj 2751  (0) 2020.08.09
[백준] boj1316  (0) 2020.07.06
[백준] 11051 이항계수문제  (0) 2017.05.19
[백준] 5430  (0) 2017.05.04
[백준] 11866 & 1158 (조세퍼스문제 0, 1)  (0) 2017.05.04