У меня есть два метода, которые, я считаю, могут быть сделаны лучше, но не могут найти этот путь.Короткая версия расчета
Первое:
public int calcPow(long num) {
int count = 0;
while(num/2!=0) {
num = num/2;
count++;
}
return count;
}
Второй:
private long findParentNumber(long value) {
for(int bitNum = 0; bitNum < Long.SIZE; bitNum++) {
if((value & (1L << bitNum)) != 0) {
return value^(1L << bitNum);
}
}
throw new RuntimeException("No parent number found");
}
Я считаю, есть способы, чтобы сделать то же самое без петель. Вы можете помочь?
Cheers!
Что случилось с петлями? Вы можете попытаться заменить циклы рекурсивными методами. – Eran
@Eran, но это более опасно и занимает немного больше места –
Не могли бы вы объяснить, что выполняет вторая функция? –