树从根结点开始往下数,叶子结点所在的最大层数称为树的高度(根节点在第1层)。 某节点的左子树与右子树的高度(深度)差即为该节点的平衡因子,若一颗二叉树的所有节点的平衡因子都在集合{-1,0,1}中,则称该二叉树为平衡二叉树,现在要求你找出高度为h的平衡二叉树的最少节点数。
输入描述
树的高度h
输出描述
高度为h的平衡二叉树的最少节点数
样例
输入样例:1 输出样例:1
输入样例:2 输出样例:2
输入样例:3 输出样例:4
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
queue<int> que;
que.push(n);
int ans=0;
ans=n;
while(!que.empty())
{
int x=que.front();
que.pop();
for(int i=x;i>=1;i--)
{
if((x-i)>=2)
{
que.push(x-i-1);
ans+=x-i-1;
}
}
}
cout<<ans;
}