https://www.acmicpc.net/problem/11051
문제
자연수 N과 정수 K가 주어졌을 때 이항 계수 (N,K)를 10,007로 나눈 나머지를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ K ≤ N)
출력
(N,K)를 10,007로 나눈 나머지를 출력한다.
예제 입력 1
5 2
예제 출력 1
10
#include <iostream>
using namespace std;
int T, N, K;
long long num[31][31];
int main() {
freopen("input.txt", "r", stdin);
for (int i = 0; i <= 30; i++)
{
for (int j = 0; j <= 30; j++)
{
if (i == j || j == 0) {
num[i][j] = 1;
continue;
}
num[i][j] = (num[i - 1][j] + num[i - 1][j - 1]);
}
}
cin >> T;
while (T--) {
cin >> N >> K;
cout << num[K][N]<<"\n";
}
return 0;
}
'개발자 > algorithm' 카테고리의 다른 글
백준 5568번 : 카드놓기 (c++) (0) | 2020.08.17 |
---|---|
백준 1256번 : 사전 (c++) (0) | 2020.08.17 |
백준 3020번 : 개똥벌레 (c++) (0) | 2020.08.17 |
백준 1202번 : 보석 도둑 (c++) (0) | 2020.08.17 |
백준 1927번 : 최소 힙 (c++) (0) | 2020.08.17 |