练习2-18 求组合数 (15分)(不调用函数)

本题要求编写程序,根据公式C​n​m​​=​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
#include
int main()
{
  int i,m,n;
  double r1=1.0,r2=1.0,r3=1.0,result;
  scanf("%d %d", &m, &n);
  if(m == n)//要把m=n的情况单独考虑
  {
    printf("result = 1");
  }
  else
  {
    for(i = 1; i <= n; i++)
  	{r1 *= i;}
  	for(i = 1; i <= m; i++)
  	{r2 *= i;}
  	for(i = 1; i <= n-m; i++)
  	{r3 *= i;}
  	result = r1 / (r2 * r3);
  	printf("result = %.0lf",result);
  }
  return 0;
}

 

你可能感兴趣的:(练习2-18 求组合数 (15分)(不调用函数))