您现在的位置是:主页 > news > 上海网站建设 微信开发公司/百度网络科技有限公司

上海网站建设 微信开发公司/百度网络科技有限公司

admin2025/5/15 0:31:27news

简介上海网站建设 微信开发公司,百度网络科技有限公司,有赞微商城下载,哪里可以做网站教程题目描述 Description同学们都知道二叉树的定义,也都知道3个结点的二叉树有5种, 现给你二叉树的结点个数n,要你编程输出不同形态二叉树的种数。 输入描述 Input Description一个整数n输出描述 Output Description不同形态二叉树的种数。 样例…

上海网站建设 微信开发公司,百度网络科技有限公司,有赞微商城下载,哪里可以做网站教程题目描述 Description同学们都知道二叉树的定义,也都知道3个结点的二叉树有5种, 现给你二叉树的结点个数n,要你编程输出不同形态二叉树的种数。 输入描述 Input Description一个整数n输出描述 Output Description不同形态二叉树的种数。 样例…
题目描述 Description

同学们都知道二叉树的定义,也都知道3个结点的二叉树有5种,

现给你二叉树的结点个数n,要你编程输出不同形态二叉树的种数。

输入描述 Input Description
一个整数n
输出描述 Output Description

不同形态二叉树的种数。

样例输入 Sample Input

3

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

n<30

讨论过程:http://www.cnblogs.com/huashanqingzhu/p/5823166.html

http://www.cnblogs.com/hujunzheng/p/5040334.html

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     long long n,i;
 6     long long h0=1,h1=1,h2;
 7     cin>>n;
 8     if(n==0||n==1) cout<<1<<endl;
 9     else
10     {
11         for(i=2;i<=n;i++)
12         {
13             h2=(4*i-2)*h1/(i+1);
14             h1=h2;
15             //cout<<h2<<endl;
16         }
17         cout<<h2<<endl;
18     }
19     return 0;
20 }

另一个做法,思路不谋而合:

何泓历的代码:

 1 #include <stdio.h>
 2 long long a[21]={0};
 3 long long fun(int n)
 4 {
 5     if(n==1||n==0) return 1;
 6     long long sum=0,i;
 7     for(i=0;i<n;i++)
 8     {
 9         if(a[i]==0) a[i]=fun(i);
10         if(a[n-1-i]==0) a[n-1-i]=fun(n-1-i);
11         sum+=a[i]*a[n-1-i];
12     }
13     return sum;
14 }
15 int main()
16 {
17     int n;
18     scanf("%d",&n);
19     printf("%lld\n",fun(n));
20     return 0;
21 }

 

 

 

转载于:https://www.cnblogs.com/huashanqingzhu/p/7190060.html