水题,这里注意计算的速度,方法不好可能会超时。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int maxn=200005;
const double eps=1e-8;
const double PI = acos(-1.0);
ll C(ll n,ll k)
{
if(2*k>n) k=n-k;
ll s=1;
for(ll i=1,j=n; i<=k; i++,j--)
s=s*j/i;
return s;
}
int main()
{
ll n,k;
while(scanf("%lld%lld",&n,&k)&&(n||k))
{
printf("%lld\n",C(n,k));
}
return 0;
}