在本教程中,我们将学习有关 motzkin 数的知识。
motzkin 数列如下。
一个0 = 1
一个1 = 1
a n = ((2 * n + 1)/ n + 2) * M (n-1) +((3 * n - 3)/ n + 2) * M (n - 2)
让我们看看解决问题的步骤。
初始化数字n。
迭代直到n。
更新前两个数字
返回最后一个数字。
#include <bits/stdc++.h> using namespace std; int getNthTerm(int n) { if(n == 0 || n == 1) { return 1; } int a = 1, b = 1; for(int i = 2; i <= n; ++i) { int c = ((2 * i + 1) * b + (3 * i - 3) * a) / (i + 2); a = b; b = c; } return b; } int main() { int n = 5; cout << getNthTerm(n) << endl; return 0; }输出结果
如果你运行上面的代码,那么你会得到下面的结果。
21
如果您对本教程有任何疑问,请在评论部分提及。