C ++中的Entringer编号
EntringerNumber 是一个特殊的数字,它等于{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