Где я Я застрял в том, что мне нужно написать функцию так, чтобы она возвращала пару чисел (массив или список) самого старшего бита и последнего значимого бита.
то есть: ввод 14 в функцию вернет (1, 0), поскольку 14 — это 1110 в двоичном виде.
У меня есть легкий доступ к MSB и LSB (getFirst(), getLast()).
Функция может принимать только один аргумент — десятичное число.
В настоящее время у меня есть этот текущий код:
Код: Выделить всё
public static void encodeBin(int n) {
if(n == 0) return; //Base case
else {
if(n % 2 == 0)
theList.addFirst(0);
else
theList.addFirst(1);
encodeBin(n / 2);
}
// return?
}
Более того, где мне следует создать список? Если я помещу что-то вроде List = new LinkedList() в самом начале функции, то каждый раз, когда функция вызывает саму себя, она создает новый список и добавляет биты в ЭТОТ новый список. не оригинал, верно? (Список создается при первом вызове функции)
Кто-нибудь знает, как это решить?
Подробнее здесь: https://stackoverflow.com/questions/130 ... e-function
Мобильная версия