練習2-18 求組合數 (15 分)
本題要求編寫程序,根據公式Cnm=m!(n−m)!n!算出從n個不同元素中取出m個元素(m≤n)的組合數。
建議定義和調用函數fact(n)計算n!,其中n的類型是int,函數類型是double。
輸入格式:
輸入在一行中給出兩個正整數m和n(m≤n),以空格分隔。
輸出格式:
按照格式“result = 組合數計算結果”輸出。題目保證結果在double類型范圍內。
輸入樣例:
2 7
輸出樣例:
result = 21
思路:利用階乘函數表示組合數。
代碼如下:
#include <stdio.h>
double factorial(double n);
int main()
{
double n, a, m;
scanf("%lf%lf",&m,&n);
a=factorial(n)/(factorial(n-m)*factorial(m));
printf("result = %.0lf",a);
return 0;
}
double factorial(double n)
{
double i, fact=1;
for(i=1;i<=n;i++)
fact=fact*i;
return fact;
}
