• 题解——栈(卡特兰递归数的应用)


    //递归

    #include <iostream>

    #include <cstdio>

    using namespace std;

    int a[100];

    int fun(int n)

    {

        if(n==0) return 1;

        if(n==1) return 1;

        if(n==2) return 2;

        if(n>2)

        {

            int s=0;

            for(int j=0;j<n;j++)

                s=s+fun(j)*fun(n-j-1);

            return s;

        }

    }

    int main()

    {

        int n; cin>>n;

        cout<<fun(n);

        return 0;

    }

    //递推

    #include <iostream>

    #include <cstdio>

    #include <iostream>

    using namespace std;

    int a[105]={1,1};

    void fun()

    {

        for(int i=2;i<=10;i++)  //这里只算了前10位

            for(int j=0;j<i;j++)

                a[i]+=a[j]*a[i-j-1];

    }

    int main()

    {

        fun();

        cout<<a[5];

        return 0;

    }

    关于卡特兰数的其他表达式以及关于卡特兰数的其他应用模型可参考下链接:

    会发现(不同模型共同的特性:进栈数>出栈数(n个)、左括号数>右括号数(n对)、5元钱数>10元钱数(n对))

      https://www.cnblogs.com/bbqub/p/Catalan.html#3281581982 作者:松令

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    C 语言中 static 的作用
    STM32 标准库
    STM32 HAL库与标准库的区别_浅谈句柄、MSP函数、Callback函数
    asp.net core launchsettings.json
    asp.net core mvc/api部署到iis
    依赖倒置来反转依赖
    ASP.NET Core in2020
    DDD学习一
    asp.net core学习一
    从零开始实现ASP.NET Core MVC的插件式开发
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13521326.html
Copyright © 2020-2023  润新知