文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>N个节点二叉树的形状个数 C语言实现

N个节点二叉树的形状个数 C语言实现

时间:2010-12-19  来源:hdc1112_cu

// f(0) = 1

// f(1) = 1

// f(2) = f(1)*f(0) + f(0)*f(1) = 2

// f(3) = f(2)*f(0) + f(1)*f(1) + f(0)*f(2) = 2*1 + 1*1 + 1*2 = 5

// f(4) = f(3)*f(0) + f(2)*f(1) + f(1)*f(2) + f(0)*f(3) = 5*1 + 2*1 + 1*2 + 1*5 = 14


#include <stdio.h>

int f(int n)
{
    if (n == 0 || \
        n == 1)
    {
        return 1;
    }
    int sum = 0;
    int i = 0;
    for (i =0; i<n; i++)
    {
        sum += f(i)*f(n-i-1);
    }
    return sum;
}

int main()
{
    printf("%d\n", f(16));
    return 1;
}


// f(0) = 1

// f(1) = 1

// f(2) = f(1)*f(0) + f(0)*f(1) = 2

// f(3) = f(2)*f(0) + f(1)*f(1) + f(0)*f(2) = 2*1 + 1*1 + 1*2 = 5

// f(4) = f(3)*f(0) + f(2)*f(1) + f(1)*f(2) + f(0)*f(3) = 5*1 + 2*1 + 1*2 + 1*5 = 14


#include <stdio.h>

int f(int n, int a[])
{
    if (a[n])
    {
        return a[n];
    }
    int sum = 0;
    int i = 0;
    for (i =0; i<n; i++)
    {
        sum += f(i, a)*f(n-i-1, a);
    }
    a[n] = sum;
    return sum;
}

int a[100];

int main()
{
    a[0]=1;
    a[1]=1;
    printf("%d\n", f(16, a));
    return 1;
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载