#include <stdio.h>
int heap[101];
int find_pow(int a, int b){
if(b == 0) return 1;
int ans = 0, curr = 1, j;
for(j=0; j<b; j++){
ans += curr;
curr *= a;
}
return ans;
}
int find_height(int n){
int ans = 0, curr_ele = 0;
while(curr_ele < n){
curr_ele += find_pow(2, ans);
ans++;
}
return ans;
}
int main(){
int n, j;
printf("enter the number of elements in the heap : "); printf("now enter the elements : "); for(j=0; j<n; j++)
printf("the height of the heap is : %d\n",find_height
(n
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaGVhcFsxMDFdOwoKaW50IGZpbmRfcG93KGludCBhLCBpbnQgYil7CglpZihiID09IDApIHJldHVybiAxOwoJaW50IGFucyA9IDAsIGN1cnIgPSAxLCBqOwoJZm9yKGo9MDsgajxiOyBqKyspewoJCWFucyArPSBjdXJyOwoJCWN1cnIgKj0gYTsKCX0KCXJldHVybiBhbnM7Cn0KCmludCBmaW5kX2hlaWdodChpbnQgbil7CglpbnQgYW5zID0gMCwgY3Vycl9lbGUgPSAwOwoJd2hpbGUoY3Vycl9lbGUgPCBuKXsKCQljdXJyX2VsZSArPSBmaW5kX3BvdygyLCBhbnMpOwoJCWFucysrOwkJCgl9CglyZXR1cm4gYW5zOwp9CgppbnQgbWFpbigpewoJaW50IG4sIGo7CglwcmludGYoImVudGVyIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGhlYXAgOiAiKTsKCXNjYW5mKCIlZCIsJm4pOwoJcHJpbnRmKCJub3cgZW50ZXIgdGhlIGVsZW1lbnRzIDogIik7Cglmb3Ioaj0wOyBqPG47IGorKykKCQlzY2FuZigiJWQiLCZoZWFwW2pdKTsKCXByaW50ZigidGhlIGhlaWdodCBvZiB0aGUgaGVhcCBpcyA6ICVkXG4iLGZpbmRfaGVpZ2h0KG4pKTsKCXJldHVybiAwOwp9