C ++中的Entringer编号

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