• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

(组合数学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;
}


posted @ 2013-10-08 22:34  Class Xman  阅读(196)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3