浙大版《C语言程序设计(第3版)》练习2-18

练习2-18 求组合数 (15分)

本题要求编写程序,根据公式在这里插入图片描述算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

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

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

输入样例:

2 7

输出样例:

result = 21

代码:

#include"stdio.h"
double fact(int n)
{
    if(n >= 2)
    {
        return n*fact(n-1);
    }
    return 1;
}

int main()
{
    int m, n;
    scanf("%d %d", &m, &n);
    printf("result = %0.lf", fact(n)/fact(m)*fact(n-m)));
    return 0;
}

内上面fact函数是个递归,不懂得话就自己百度吧。

发布了25 篇原创文章 · 获赞 3 · 访问量 240

猜你喜欢

转载自blog.csdn.net/oxygen_ls/article/details/105422039