C语言计算卡特兰数(catanlan number)

卡特兰数(Catalan number),是组合数学中一种常出现于各种计数问题中的数列;本文使用C语言来计算卡特兰数;

使用递归实现

#include <stdio.h>
unsigned long int catalan(unsigned int n) {
    if (n <= 1) return 1;
    unsigned long int c = 0;
    for (int i=0; i<n; i++)
        c += catalan(i)*catalan(n-i-1);
    return c;
}
int main() {

    for (int n=0;n<10;n++){
        printf("%ld ", catalan(n));
    }
   return 0;
}

输出:

1 1 2 5 14 42 132 429 1430 4862

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/catanlan-number-in-c.html

分类: 计算机技术
推荐阅读:
Python实现二分法查找(binary search) 对于从小到大有序排列的元素组合,使用二分法查找(binary search)是一种效率较高的算法,其大致流程如下:
TypeError: can't take floor or mod of complex number. 在Python中,复数类型不支持地板除(floor division)和取模(modulo)运算。因此,在尝试对复数执行//、%或divmod()函数运算时,会引发TypeError异常,提示can't take floor or mod of complex number.
Python ascii()函数 ascii()是 Python 内置函数之一,它可以将一个对象转换为ASCII字符串表示。
PyQt:使用QVBoxLayout实现垂直布局 所谓的布局,你可以理解为窗口上控件(部件)的排版方式;使用 Layout 进行布局,窗口上的部件能随窗口大小的变化而变化;在本文中,你将掌握在Python中使用 QVBoxLayout 来进行垂直布局;
Rust函数返回多个值 在Rust中,函数可以返回一个元组,这个元组可以包含多个值;
Python实现双向链表 在本文中,我们将看到另一种类型的链表,可以向前和向后移动;这样的链接列表称为双重链接列表(双向链表)。