알고리즘/백준 문제풀이

백준 1010번, 언어 : C99

ya_ya 2020. 12. 24. 21:29
반응형
#include<stdio.h>

long long fact(int a);
int combination(int n, int r);
int main()
{	


	int T = 0, N = 0, M = 0, val = 0;
	scanf("%d", &T);
	for (int i = 0; i < T; i++)
	{
		scanf("%d %d", &N,&M);
		val = combination(M, N);
		printf("%d\n", val);
	}

	return 0;

}

int combination(int n, int r)// 5,2
{	
	long long val=1;
	if ((n / 2) < r) r = n - r;
	for (int i = 0; i < r; i++)
	{
		val= val*(n - i);
	}
	val = val / fact(r);
	return (int)val;
}

long long fact(int a)
{
	long long val = 1;
	for (int i = 1; i < a + 1; i++)
	{
		val *= i;
	}
	return val;
}
반응형