根据公式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类型的变量接收。