作业帮 > 综合 > 作业

C语言【求组合数】Description组合数的计算虽说简单但也不乏有些陷阱,这主要是因为语言中的数据类型在表示范围上是

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/20 00:26:07
C语言【求组合数】
Description
组合数的计算虽说简单但也不乏有些陷阱,这主要是因为语言中的数据类型在表示范围
上是有限的.更何况还有中间结果溢出的现象,所以千万要小心.
Input
求组合数的数据都是成对(M与N)出现的,每对整数M和N满足0<m,n≤20,以EOF
结束.
Output
输出该组合数.每个组合数换行.
Sample Input
5 2
18 13
Sample Output
10
8568
怎么避免溢出?下面这个溢出了,要怎么改呢?
#include
void main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
printf("%ld\n",Fun(m)/(Fun(n)*Fun(m-n)));
}
}
int Fun(int x)
{
int i;
int sum=1;
for(i=1;i
C语言的话,你要自己设计一个数据结构,用来保存超长整数.
然后自己编写超长整数的四则运算函数.
跟据你要处理的组合数来设计这个结构大小,
比如要处理100的阶乘,要10进制的157位数.