c语言递推实现catalan数列
时间: 2024-09-27 15:12:35 浏览: 38
C语言实现Fibonacci数列递归
Catalan数列是一个经典的数学序列,它在组合数学中有许多应用,比如二叉树的构造、括号匹配等问题。Catalan数列的第n项通常表示为C(n)。递推法是一种常见的计算Catalan数的方式,其递推公式为:
C(0) = 1
C(1) = 1
C(n) = (4n - 2) * C(n - 1) / (n + 1), 对于 n > 1
这个递归公式意味着每一项C(n)都是前一项C(n-1)和其他一些因子的乘积。在C语言中,你可以使用循环结构(如for或while)结合递归来实现这个过程。下面是一个简单的C语言函数示例:
```c
#include <stdio.h>
unsigned long int catalan(int n) {
if (n <= 1)
return n;
unsigned long int prev = catalan(n - 1);
unsigned long int curr = (4 * n - 2) * prev; // 递推计算当前项
return curr;
}
int main() {
for (int i = 0; i <= 5; ++i) { // 打印前几个Catalan数
printf("C(%d) = %lu\n", i, catalan(i));
}
return 0;
}
```
阅读全文