POJ 2249 Binomial Showdown

// n 个 数 取 k个数的取法
// C(n,k) 注意些细节
#include <iostream> #include <string> #include<sstream> #include <cmath> #include <map> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; #define LL long long LL C(int n,int k) { LL m=1; if(k>n/2) k=n-k; // 不加这句会超时 比如C[10^9][10^9 - 1] int i; for(i=1;i<=k;i++) { m*=(n-i+1); m/=i; } return m; } int main() { int n,k; while(scanf("%d %d",&n,&k),n|k) { printf("%lld ",C(n,k)); } return 0; }
原文地址:https://www.cnblogs.com/372465774y/p/3603190.html