转换为递归函数?

时间:2016-11-30 19:50:38

标签: c++ math recursion

我仍然遇到基本递归问题。所以我有两个函数显示为

render() {
    return (
        <div>
            {this.state.showToolTip ? <Tooltip ... /> : null}

            {/* ... other stuff ... */}
        </div>
    );    
}

我的导师告诉我这实际上是错的,我应该在选择功能中递归。我不知道如何选择公式为 C(n,r)= n! /(r!·(n - r)!),由于所有被递归的都是阶乘,我只是做了一个单独的阶乘函数。

如果不使用新库,这两个函数如何成为一个递归函数?

2 个答案:

答案 0 :(得分:4)

我认为您的导师希望您使用此recurrent definition

C(N, 1) = N
C(N, K) = C(N, K-1) * (N + 1 - K) / K

此定义可让您避免在choose函数内使用阶乘,递归。

答案 1 :(得分:1)

首先请注意,与C函数中的参数顺序相比,您的choose-function中的参数顺序被切换。

现在你的教练意味着他想要select-function递归,例如:

C(n, r) = n! / (r! · (n – r)!) = n/(n-r) * (n-1)! / (r! · (n -1 – r)!) = n/(n-r)*C(n-1, r)