欢迎光临散文网 会员登陆 & 注册

1101 求组合数

2021-10-22 00:00 作者:羽走  | 我要投稿


题目描述

 计算从n个人中选择k个人组成一个委员会的不同组合数。显然,这个组合数是m!/(k!(m-k)!)。要求编写函数fact(),实现求一个数的阶乘功能,在主函数中调用此函数。  
    int fact(int n)
    {
        //函数返回值为n的阶乘。
    }  
对于C/C++代码的提交,本题要求必须通过定义fact函数和main函数实现,否则,提交编译错误,要提交完整的程序。 

输入

输入两个正整数n, k,k<=n<=12。

输出

输出一个整数,即n个人中选择k个人的不同组合方案数。

样例输入

样例输出

        此题难度不大,考查的依旧是函数的一些基础应用,需要用到的就是高中学到的组合数的公式,对于函数相关题目而言,难度不大。

        思路

        想要计算组合数,那就一定需要明白如何计算阶乘,并且知道组合数公式,计算难度不大。这里说一下程序每一步是如何进行的。

         遇到一个fact函数时,就会调用下面的函数一次,所以不用担心计算机无法输出你想要的值,注意你输入的实参即可。并且注意在调用的时候,你传递的是括号里面的值,但是返回时是你return后面的值,这里需要注意一下。

    【解答】

        其实函数真的没有那么难,只不过就是之前的一大段代码,给破开成两小段进行编写,真正难的地方就是需要注意,你定义的变量,是不是你需要的。

        如果这个题目真的不使用函数来做,你也可以一个一个计算分子分母的值,进行运算。函数只不过是把普通代码转换了,普通代码你需要使用三次阶乘计算每一项的值,但是使用函数,只需要写一个,剩下的让计算机调用来解决。


1101 求组合数的评论 (共 条)

分享到微博请遵守国家法律