帕斯卡恒等式和函数递归求组合数 .txt
来自「c语言的一些常见的算法以及思考和改进的文章,写的很不错,花费了很大的精力从网络了」· 文本 代码 · 共 43 行
TXT
43 行
利用帕斯卡恒等式和函数递归求组合数
一般常用C(n+1,k)=(n+1)!/k!/(n+1-k)!来计算组合数,但是这个方法中涉及到阶乘运算,数据n不能太大。用下面的方法则可以避免这个问题。
帕斯卡恒等式为C(n+1,k)=C(n,k-1)+C(n,k)
代码如下:
/*
利用帕斯卡恒等式和函数递归求组合数
作者:BugEyes
主页:http://bugeyes.blog.edu.cn
*/
#i nclude <stdio.h>
#i nclude <conio.h>
void error()
{
printf("Something is wrong,Please check it!");eixt(-1);
}
int fun(int n,int m)
{
if(n<0)
error();
if(m<0)
error();
if(m==0||m==n)
return 1;
else
return fun(n-1,m)+fun(n-1,m-1);
}
main()
{
int n,m;
clrscr();
printf("Input two data:\n");
scanf("%d%d",&n,&m);
printf("The combo number is:\n%d\n",fun(n,m));
getchar();
}
BugEyes 发表于 2005-9-9 11:01:00
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?