Koder / 박성훈
article thumbnail

이항계수가 뭔지 몰라서 푸는데 좀 걸렸다...

괄호안에 숫자 두개 적어놓고 계산하라는데

어떻게하라는지 알아야 풀든말든 하지 ㅠㅠ

솔직히 백준같은 알고리즘은 수학선행안하는 사람을 너무 차별한다 ㅠ

지금부터라도 선행해야하나..

https://www.acmicpc.net/problem/11050

 

11050번: 이항 계수 1

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

www.acmicpc.net

한번 검색해보고 이항 계수 가 nCr과 같다는걸 안 이후로는 무난하게 풀었다.

 

#include <stdio.h>

int f(int a){
	if(a == 0 || a == 1) return 1;
	return f(a-1) * a;
}

int main(){
	int n,k;
	scanf("%d %d", &n, &k);
	printf("%lld", f(n)/(f(k)*f(n-k)));
	return 0;
}

숫자범위가 작아서 int 범위를 안넘을거같아서 걍 대충 int로 선언하고 재귀를 짰다.

f함수에서 a!의 값을 계산해주면 적당히 연산해서 nCr 완성

반응형