백준

백준 11051 : 이항 계수 2

E재HO 2022. 3. 8. 18:26

이항 계수 2 성공

 
 
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB 36844 13801 10836 38.291%

문제

자연수 N과 정수 K가 주어졌을 때 이항 계수 (NK)를 10,007로 나눈 나머지를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N K가 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ K  N)

출력

 (NK)를 10,007로 나눈 나머지를 출력한다.

예제 입력 1 복사

5 2

예제 출력 1 복사

10

출처

메모

 

코드 

 

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int dp[1001][1001];
int main() {

    int n,k;
    cin >> n >> k;
    
    dp[0][0] = 1;
    for (int i = 1; i <= n; i++) {
        for (int j = 0; j < i + 1; j++) {
            if (j == 0 || j == i+1) {
                dp[i][j] = 1;
                //cout << dp[i-1][j] << ' ';
            }
            else {
                dp[i][j] = (dp[i-1][j - 1] + dp[i-1][j]) % 10007;
                //cout << dp[i][j] << ' ';
            }
            
        }
        //cout << endl;
    }
    cout << dp[n][k]<<endl;


    return 0;
}