题目描述
世界上最高的树是澳洲杏仁桉树,高 156 米。(不用看这句)
给你 N,求有 N 个节点 的完全二叉树的的高度 (约定根节点在第一层)。
输入
只有一个数,表示这棵完全二叉树的节点数量。
输出
只有一个数,即这棵树的高度。
输入输出样例(除了样例2,其他都是我自己加的)
样例1 输入:1 输出:1
样例2 输入:12 输出:4
样例3 输入:17179869184 输出:35
样例4 输入:1000000000000000000 输出:60

#include<stdio.h>
typedef long long ll;
int main(){
ll n,c=1;
scanf("%lld",&n);
while(n!=1)
{
n>>=1; //位运算
c++;
}
printf("%lld\n",c);
return 0;
}
本文介绍了一种通过位运算高效计算完全二叉树高度的方法,并提供了完整的C语言实现代码。该方法适用于任意节点数量的完全二叉树,能够快速准确地计算出树的高度。
440

被折叠的 条评论
为什么被折叠?



