Test Message

e102. C(n, k)

內容

有 n 個點,求可以挑出幾個凸 k 邊形。

(這 n 個點共圓)


輸入

第一行有一個整數 t ( t <= 50 ),代表接下來有幾行。

接下來有兩個整數 n, k。(3 <= k <= n <= 20)。

代表從 n 個點取出 k 邊形。

2
6 4
3 3

輸出

輸出 n 個點可以挑出幾個 k 邊形。

15
1


解題思路

如題,C(n,k)。


完整程式碼

AC (2ms, 96KB)
#include <stdio.h>

int main()
{
int kase, n, k;
long long ans;
scanf(" %d", &kase);
while (kase--)
{
scanf(" %d %d", &n, &k);
ans = 1;
for (int i = n; i > k; i--)
ans *= i;
for (int i = n - k; i > 1; i--)
ans /= i;
printf("%lld\n", ans);
}
return 0;
}