美文网首页
【C语言】求组合数

【C语言】求组合数

作者: Hettie | 来源:发表于2022-07-28 18:29 被阅读0次

本题要求编写程序,根据公式 C^m_n = n! \over m!(n-m)! 算出从n个不同元素中取出m个元素(mn)的组合数。

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

输入格式:

输入在一行中给出两个正整数mnmn),以空格分隔。

输出格式:

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

输入样例:

2 7

输出样例:

result = 21

代码:

#include <stdio.h>
double fact(int n)
{
    double factorial = 1;//局部变量声明
    for (; n >= 1; n--)
    {
        factorial *= n;
    }
    return factorial;//将计算结果返回
}
int main()
{
    int m, n;
    double result;//题目保证结果在double类型范围内
    scanf("%d %d", &m, &n);
    result = fact(n) / fact(m) / fact(n - m);
    printf("result = %.0lf", result);//去除小数点后的部分
    return 0;
}

提交截图:

image.png

解题思路:

本题主要考察了如何定义并调用函数。

定义函数

C 语言中的函数定义的一般形式如下:

return_type function_name( parameter list )
{
   body of the function
}

在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:

  • 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void
  • 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
  • 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
  • 函数主体:函数主体包含一组定义函数执行任务的语句。

调用函数

创建 C 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。

调用函数时,传递所需参数,如果函数返回一个值,则可以存储返回值。

相关文章

  • 【C语言】求组合数

    本题要求编写程序,根据公式 = 算出从n个不同元素中取出m个元素(m≤n)的组合数。 建议定义和调用函数fac...

  • 求字符串长度(c语言笔记)

    求字符串长度(c语言笔记) -------------------------------------------...

  • 判断质数,分解质因数

    C语言实现代码 素数的判断还有2到sqrt(a),加入头文件include 合数分解质因数(C++实现)

  • c语言求素数

  • C语言-求阶乘

    问题描述:求阶乘 源代码: 运行结果: 程序参数: 输出大小: 148.337890625 KiB 编译时间: 0...

  • C语言学习(4)数组

    数组 到目前为止,我们已经学习了C语言的基本数据类型:整形、浮点型、字符型。再往后 就是复合数据类型。 所谓复合数...

  • 算法模板(六)基础数论

    gcd与lcm Lucas求组合数

  • 求组合数

    排列组合是经常遇到的问题,本篇文章想跟大家探讨一下,对于给定的,我们该如何去求组合数。 方法一:递归(动态规划) ...

  • 除法取余引发的思考

    最近做题遇到一个问题,具体题目不表,我把关键问题抽象一下: 求组合数C(n1,m1)*C(n2,m2)*...*C...

  • 组合数 模板

    Lucas定理 mod小于10^5 逆元求组合数

网友评论

      本文标题:【C语言】求组合数

      本文链接:https://www.haomeiwen.com/subject/ngvxwrtx.html