练习题目-平衡二叉树

来源:互联网 发布:淘宝宝贝规格怎么添加 编辑:程序博客网 时间:2024/06/01 10:13

NotDeep一直不擅长数据结构,于是找来slowlight帮助他。slowlight于是就从二叉平衡树讲起(纳尼?!):

平衡二叉树(Balanced Binary Tree)具有以下性质的一种树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

讲完了slowlight就给NotDeep出了一道练习题:一棵高度为h的二叉平衡树,它的节点数最少为多少?NotDeep表示依然难得令人发指,于是请你借助编程来帮帮他。

输入

输入数据有多组,每组一行,包括一个整数h (0<= h <= 1000)

输出

对于每个测试实例,要求输出一个答案,即最少的节点数。每个输出占一行。答案可能很大,答案需要对2015取模。

样例输入

12100

样例输出

12360
#include <iostream>#include <stdio.h>using namespace std;int main(){int h[1000]={-1};int a[1003];a[1]=1;a[2]=2;int i=3;while(i<=1002){a[i]=a[i-1]+a[i-2]+1;a[i]=a[i]%2015;i++;}i=0;while((scanf("%d",&h[i]))!=EOF){i++;}i--;int j=0;while(j<=i){printf("%d\n",a[h[j]]);j++;}return 0;}

0 0
原创粉丝点击