組合數(shù)定義
代碼分析
#include<stdio.h>
#include<stdlib.h>
//函數(shù)聲明
int fact(int n);//階乘函數(shù)柴灯,公式法使用
int combination(int n, int r);//返回組合數(shù)
int judge(int n, int r);//判斷輸入值合理性
int main()
{
int n, r;
scanf("%d %d", &n, &r);
if(judge(n, r))
{
printf("%d\n", combination(n, r));
}else
{
printf("Wrong Number!\n");
}
system("pause");
return (0);
}
//判斷輸入值合理性
int judge(int n, int r)
{
if(n < r || n < 0 || r < 0)
{
return (0);
}else
{
return (1);
}
}
//求階乘
int fact(int n)
{
int i = n;
while(i > 1)
{
n *= --i;
}
return (n);
}
//直接公式法
int combination(int n, int r)
{
return (fact(n) / (fact(r) * fact(n-r)));
}
//遞歸法
//int combination(int n, int r)
//{
// if(r == 0 || n == r)
// {
// return (1);
// }else
// {
// return (combination(n-1, r-1) + combination(n-1, r));
// }
//}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者