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