В стандартных библиотеках С++ я нашел только метод журнала с плавающей запятой. Теперь я использую журнал, чтобы найти уровень индекса в двоичном дереве (floor(2log(index))
).
Код (С++):
int targetlevel = int(log(index)/log(2));
Я боюсь, что для некоторых элементов edge (элементы со значением 2 ^ n) log вернет n-1.999999999999 вместо n.0. Правильно ли этот страх? Как я могу изменить свое утверждение так, чтобы оно всегда возвращало правильный ответ?