第n个卡塔兰数的C/C++程序是什么?

卡塔兰数是一系列数字。卡塔兰数是一系列自然数,在各种计数问题中出现,通常涉及递归定义的对象。

第n个卡塔兰数的C/C++程序是什么?第n个卡塔兰数的C/C++程序是什么?

Cn是长度为2n的Dyck词的数量。Dyck词是由n个X和n个Y组成的字符串,使得字符串的任何初始片段中Y的数量不超过X的数量。例如,以下是长度为6的Dyck词:

XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY.

将符号X重新解释为开括号,将Y解释为闭括号,Cn计算包含n对正确匹配的括号的表达式的数量

((())) ()(()) ()()() (())() (()())

Cn 是 n + 1 个因子可以完全括起来的不同方式的数量(或者关联二进制的 n 个应用程序的方式数量)操作员)。例如,对于 n = 3,我们有以下四个因子的五个不同括号:

立即学习“C++免费学习笔记(深入)”;

((ab)c)d (a(bc))d (ab)(cd) a((bc)d) a(b(cd))

连续应用二元运算符可以用完全二叉树表示。(如果每个顶点要么有两个子节点,要么没有子节点,则称为根二叉树是完全的。)由此可知,Cn是具有n + 1个叶子的完全二叉树的数量:

示例

输入 – 6

输出 – 1 1 2 5 14 42

解释

当n = 0, 1, 2, 3,4,5,6,7,8,9,10, …时,前n个卡塔兰数为

1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862,

例子

#includeusing namespace std;long int catalan( int n) {   if (n <= 1){      return 1;   }   long int result = 0;   for (int i=0; i<n; i++){      result += catalan(i)*catalan(n-i-1);   }   return result;}int main(){   for (int i=0; i<6; i++)   cout << catalan(i) << " ";   return 0;}

输出

1 1 2 5 14 42

以上就是第n个卡塔兰数的C/C++程序是什么?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1444997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 22:05:36
下一篇 2025年12月17日 22:05:43

相关推荐

  • 将C/C++程序转换为预处理器代码

    这里我们将看到如何从 C 或 C++ 程序的源代码生成预处理或预处理器代码。 要使用 g++ 编译器查看预处理代码,我们必须使用 ‘-E ‘ 选项与 g++。 预处理器包含代码中的所有 # 指令,并且还扩展了 MACRO 函数。 语法 g++ -E program.cpp 示…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信