在数学的世界里,有一种神奇的数列,它既不是斐波那契数列,也不是素数序列,但它却拥有独特的魅力。它就是卡特兰数(Catalan Number)。今天,我们就来一起探讨卡特兰数的C语言实现,感受递归与组合的数学之美。
卡特兰数简介
卡特兰数是组合数学中的一个重要数列,由法国数学家欧仁·卡特兰(Eugene Catalan)在1838年首次提出。卡特兰数列的前几项如下:
项数 | 卡特兰数 |
---|---|
0 | 1 |
1 | 1 |
2 | 2 |
3 | 5 |
4 | 14 |
5 | 42 |
... | ... |
卡特兰数在组合数学中有着广泛的应用,例如计数组合数、括号匹配、二叉树、多边形划分等。
卡特兰数的C语言实现
1. 递归实现
递归是解决卡特兰数问题的一种简洁方法。下面是一个使用递归实现的卡特兰数C语言代码示例:
```c
include
// 递归函数计算卡特兰数
long long catalan_recursive(int n) {
if (n <= 1) {
return 1;
}
long long res = 0;
for (int i = 0; i < n; i++) {
res += catalan_recursive(i) * catalan_recursive(n - i - 1);
}
return res;
}
int main() {
int n = 5; // 举例:计算第5个卡特兰数
printf("