Какая функция натурального числа возвращает показатель наибольшей степени двойки, на которую делится данное число?

Нужно придумать функцию натурального аргумента a (n) , такую, что:
a (n) = 0, если n - нечётное,
a (n) = 1, если n - чётное, но не делится на 4,
a (n) = 2, если n делится на 4, но не делится на 8,
a (n) = 3, если n делится на 8, но не делится на 16.
И так дале. Примеры: a (96) = 5; a (100) = 2; a (74) = 1; a (57) = 0.
Как задать аналитически такую функцию?
1 месяц назад от Dago

1 ответ



0 голосов
Аналитически = int (log (n) , считаться будет долго, а алгоритмически = номер ведущей единицы или длина двоичного представления.
_
выделение целой части int (x) по старинке иногда обозначают квадратными скобками, а дробной - фигурными. log (n) -{log (n) }
Логарифм подразумевается по основанию 2.
В некоторых библиотеках есть готовая функция целый логарифм
1 месяц назад от QUVMarie9165

Связанные вопросы

1 ответ
1 ответ
10 года назад от Петя Барбаров