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

分类: 计算机技术
推荐阅读:
使用Rust计算圆周率 要使用 Rust 计算圆周率,可以使用蒙特卡罗方法。该方法通过在单位正方形中生成随机点,并计算落在单位圆内的点的数量来估计圆周率。
Rust获取代码的运行时间 在 Rust 中,你可以使用 std::time::Instant 模块来测量代码的运行时间。以下是一个简单的示例代码,演示如何在 Rust 中测量代码的运行时间:
Python实现双向链表 在本文中,我们将看到另一种类型的链表,可以向前和向后移动;这样的链接列表称为双重链接列表(双向链表)。
Python调用谷歌翻译API实现文本翻译 使用Python向谷歌翻译URL进行GET请求,得到网页内容后使用正则表达式进行解析,获得翻译结果;
Rust assert_ne宏的用法 在 Rust 中,assert_ne宏用于在测试时检查两个值是否不相等;如果它们不相等,则测试继续执行;如果它们相等,则会导致panic,并在控制台输出相关信息;
ettercap扫描不到主机的解决方法 本文将详细讲解在Kali系统下使用Ettercap图形界面模式时扫描不到主机的问题,并提供问题排除方法;