?? 帕斯卡恒等式和函數遞歸求組合數 .txt
字號:
利用帕斯卡恒等式和函數遞歸求組合數
一般常用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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -