알고리즘

[파이썬] 단계별 백준 문제 풀기 - 11050 이항계수 (이항 계수1)

햄❤️ 2021. 3. 15. 21:43
반응형

문제링크

 

11050번: 이항 계수 1

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

www.acmicpc.net

문제

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

입력

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

출력

 (NK)를 출력한다.

 


<<소스코드>>

# 이항계수 구하는 법 = n! / (n-k)!*k!

n,k=map(int,input().split())

#n!(팩토리얼) 구하는 함수
def f(n):
    ans = 1 #0은 없으니 1부터 시작한다.
    for i in range(2,n+1):
        ans = ans*i 
    return ans
    
#소수점 첫째자리 버림
a = round(f(n)/(f(n-k)*f(k)))

print(a)

<<결과값>>

5 2

10

이항계수 공식을 구하는 원리는 모르겠다.... 수학을 놓은지 10년 됬더니 공식보고 그냥 바로 짰다ㅠㅠ

팩토리얼을 구하는 식은 쉬우니깐,, 어떻게 어떻게 답은 구했다.

n개 중에 k개를 뽑는 조합의 수라고 생각하면 쉽겠다.

출처

728x90
반응형