2 larry ke Larry_Ke 于 2014.11.19 23:53 提问

C语言怎么用递归求组合数

求大神指导啊,递归基本思想了解,但是不知道怎么去表达,要求用公式C(n,r)=C(n,r-1)*(n-r+1)/r

4个回答

snsn1984
snsn1984   Rxr 2014.11.20 09:44
已采纳
int compute(int n, int r) {
    return compute(n, r-1) * (n-r+1)/r;
}
yangyuyu77584
yangyuyu77584 这里最好对参数做一定约束。
大约 3 年之前 回复
lanxinglan
lanxinglan   2014.11.20 16:38

int compute(int n, int r)
{

if(r == 1)
    return n;
return compute(int n, int r - 1) * (n - r + 1) / r;

}

hitwhylz
hitwhylz   Rxr 2014.11.21 08:51

int compute(int n, int r)
{
return compute(n, r-1) * (n-r+1)/r;
}

eagleyan
eagleyan   Rxr 2014.12.01 07:14

递归分两部分,一部分是结束条件,就是你的递归什么时候结束
另一部分是递归调用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!