求组合数

来源:互联网 发布:双十一淘宝的书降价吗 编辑:程序博客网 时间:2024/06/08 05:27

题目描述

组合数的计算虽说简单但也不乏有些陷阱,这主要是因为语言中的数据类型在表示范围上是有限的。更何况还有中间结果溢出的现象,所以千万要小心。

输入

求组合数的数据都是成对(M与N)出现的,每对整数M和N满足0<m, n≤20,以EOF结束。

输出

输出该组合数。每个组合数换行。

样例输入

5 218 13

样例输出

108568

提示


#include <cstdio>typedef long long ll;ll C(int n,int m){    if(m<n-m) m=n-m;    ll ans=1;    for(int i=m+1;i<=n;i++) ans*=i;    for(int i=1;i<=n-m;i++) ans/=i;    return ans;}int main(){    int m,n;    while(scanf("%d%d",&m,&n)==2){        printf("%lld\n",C(m,n));    }    return 0;}


原创粉丝点击