题目描述
世界上最高的树是澳洲杏仁桉树,高 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;
}