当前位置:编程学习 > C/C++ >>

(组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)

 
/* 
 * POJ_2249.cpp 
 * 
 *  Created on: 2013年10月8日 
 *      Author: Administrator 
 */  
  
  
#include <iostream>  
#include <cstdio>  
  
using namespace std;  
  
typedef long long int64;  
  
int64 work(int64 n , int64 k){  
    if(k > n/2){  
        k = n-k;  
    }  
  
    int64 a = 1;  
    int64 b = 1;  
    int i;  
    for(i = 1 ; i <= k ; ++i){  
        a *= n-i+1;  
        b *= i;  
        if(a%b == 0){  
            a /= b;  
            b = 1;  
        }  
    }  
  
    return a/b;  
}  
  
int main(){  
    int64 n,k;  
    while(scanf("%lld%lld",&n,&k)!=EOF,n){  
        printf("%lld\n",work(n,k));  
    }  
  
    return 0;  
}  

 


补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,