浙大版《C語言程序設計(第3版)》題目集 練習2-18 求組合數 (15 分)


練習2-18 求組合數 (15 分)

本題要求編寫程序,根據公式Cnm​​=m!(nm)!n!​​算出從n個不同元素中取出m個元素(mn)的組合數。

建議定義和調用函數fact(n)計算n!,其中n的類型是int,函數類型是double

輸入格式:

輸入在一行中給出兩個正整數m和n(mn),以空格分隔。

輸出格式:

按照格式“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;
}    
 
           

  

 
           

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM