Entringer Number 是一个特殊的数字,它等于{1,2,3,…n + 1}的排列数目,从K + 1开始,通过减少然后增加值来更新K + 1。
恩特林格数的值使用以下公式表示:
递归关系
E(n, k) = E(n,k-1)+ E(n-1,nk)
基本值为
E(0,0)= 1
E(n,0)= 0
我们可以使用以下方式找到Entringer号码:
N = 5,k = 3
E(5,3)= 14
#include <iostream>
using namespace std;
int EntringerNumber(int n, int k)
{
if (n == 0 && k == 0)
return 1;
if (k == 0)
return 0;
return EntringerNumber(n, k - 1) + EntringerNumber(n - 1, n - k);
}
int main() {
int n = 5, k = 3;
cout<<"The value of E("<<n<<", "<<k<<") = "<<EntringerNumber(n, k);
return 0;
}The value of E(5, 3) = 14