#define DeBUG
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <
string>
#include <
set>
#include <sstream>
#include <map>
#include <bitset>
using namespace std ;
#define zero {0}
#define INF 2000000000
#define EPS 1e-6
typedef long long LL;
const double PI = acos(-
1.0);
inline int sgn(
double x){
return fabs(x) < EPS ?
0 :(x <
0 ? -
1 :
1);}
unsigned __int64 N(unsigned __int64 n)
{
if(n==
0)
return 1;
return N(n-
1)*
n;
}
double C(
int n,
int m)
{
if(m>
n)
return 0;
if(m<n/
2.0)
m=n-
m;
double s1=
0;
for(
int i=m+
1;i<=n;i++
)
{
s1+=log((
double)i);
}
double s2=
0;
int ub=n-
m;
for(
int i=
2;i<=ub;i++
)
{
s2+=log((
double)i);
}
if(m>
n)
return 0;
return exp(s1-
s2);
}
int main()
{
#ifdef DeBUGs
freopen("C:\\Users\\Sky\\Desktop\\1.in",
"r",stdin);
#endif
int T;
scanf("%d", &
T);
while(T--
)
{
unsigned __int64 n,m;
cin>>n>>
m;
if(m>
n)
printf("0\n");
else
printf("%.0lf\n", C(n,m));
}
return 0;
}
转载于:https://www.cnblogs.com/Skyxj/p/3537283.html
转载请注明原文地址: https://mac.8miu.com/read-14674.html