[백준] 11050번

김지섭·2024년 11월 19일
0

백준

목록 보기
6/26

이항 계수를 구하는 문제이다.

이 공식을 사용하기로 한다.

(실패)

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n, k, np = 1, kp = 1, nkp = 1;
    cin >> n >> k;
    for(int i = 2; i < n; i++)
        np *= i;
    for(int i = 2; i < k; i++)
        kp *= i;
    for(int i = 2; i < n-k; i++)
        nkp *= i;
    
    int result = np/(kp*nkp);
    cout << result;

    return 0;
}

입력
5 2

출력
12

원래 10이 되어야 한다.

(성공)

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n, k, np = 1, kp = 1, nkp = 1;
    cin >> n >> k;
    for(int i = 2; i <= n; i++)
        np *= i;
    for(int i = 2; i <= k; i++)
        kp *= i;
    for(int i = 2; i <= n-k; i++)
        nkp *= i;
    
    int result = np/(kp*nkp);
    cout << result;

    return 0;
}

종료식의 조건에 같다는 조건을 추가해 주었더니 해결되었다.

교훈 : 손으로 써보자

profile
백엔드 행 유도 미사일

0개의 댓글