1101 求组合数

题目描述
计算从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后面的值,这里需要注意一下。
【解答】
其实函数真的没有那么难,只不过就是之前的一大段代码,给破开成两小段进行编写,真正难的地方就是需要注意,你定义的变量,是不是你需要的。
如果这个题目真的不使用函数来做,你也可以一个一个计算分子分母的值,进行运算。函数只不过是把普通代码转换了,普通代码你需要使用三次阶乘计算每一项的值,但是使用函数,只需要写一个,剩下的让计算机调用来解决。
