sm 기술 블로그

111. 11050 (이항계수 1) 본문

문제/백준_파이썬

111. 11050 (이항계수 1)

sm_hope 2022. 6. 26. 19:37
import sys
input = sys.stdin.readline

N, K = map(int, input().split())
A, B = N, K

for i in range(1, B):
    N *= (A-i)
    K *= (B-i)

if(K == 0):
    K = N
print(int(N/K))

문제요약

이항계수를 구하라.

설명

이항계수를 푸는방법은 위와같이 반복문이 아닌 재귀함수를 사용해서도 풀 수 있다.

 

일단 위 방법은 예를들어 10 과 5가 들어왔다고 해보자.

n은 N으로, r은 K로 생각하면 된다.

다음과 같이 값이 들어올 것이다.

이를 정리하면,

다음과 같이 나올 것이다.

즉, N과 K는 K번 1씩 감소하고 둘을 나누면 된다.

 

만약, K가 0이라면,

다음과 같으므로 1이 나오게 된다.

'문제 > 백준_파이썬' 카테고리의 다른 글

113. 1010 (다리놓기)  (0) 2022.06.26
112. 11051(이항 계수 2)  (0) 2022.06.26
110. 3036 링  (0) 2022.06.25
109. 2981(검문)  (0) 2022.06.25
108. 1934(최소공배수)  (0) 2022.06.24
Comments