求组合数

根据公式C(n,m)=n!/(m!(n-m)!)算出从n个不同元素中取出m个元素(m<=n)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

输入格式:

输入在一行中给出两个正整数m和n(m<=n),以空格分隔。

输出格式:
按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

输入样例:

2 7

输出样例:

result = 21

(摘自https://pintia.cn)

 

解答:

 1 #include<iostream>
 2 using namespace std;
 3 double fact(int);
 4 int main()
 5 {
 6     int m,n;        //输入的数据m,n
 7     double result;    //接收结果
 8     cin>>m>>n;        //输入数据
 9     result=fact(n)/(fact(m)*fact(n-m));    //计算C(m/n)
10     cout<<"result = "<<result;            //输出
11     return 0;
12 }
13 double fact(int n)
14 {
15     double result(1);    //用于返回数据,区别于mian()里的result
16     while(n)            //循环计算n*(n-1)*(n-2)···
17     {
18         result*=n;
19         n--;
20     }
21     return result;        //返回值
22 }

解析:

  见代码注释。double fact(int)先声明的时候注意需要添加’;‘,函数为double型,注意使用double类型的变量接收。

 

posted @ 2019-03-28 12:46  菜鸟plus  阅读(1310)  评论(0编辑  收藏  举报