Re[7]: Задачи для собеседования.
От: D. Petrov США  
Дата: 27.02.12 05:32
Оценка:
Здравствуйте, m e, Вы писали:

ME>func для нечетных чисел находит вовсе не предыдущее, а следующее число с равным количеством единиц


ME>
ME>f:    11110 -> 11101
ME>func: 00001 -> 00010
ME>


Разве это противоречит условиям "получить ближайшее меньшее или большее число"?
func(1) --> 2
От 1 (0001) ближайшее большее с равным числом бит — это 2 (0010).


ME>для нечетных чисел, похоже, тебе придется поступиться принципами и сделать цикл


ME>
ME>0010 0000000000000000000000000011111 -> 0001 1111100000000000000000000000000
ME>



Тут не очень понятно... Какие x дают неверный func(x)?

func(2) --> 1 (ближайшее меньшее)
func(31) --> 47 (ближайшее большее)

Даже 0 корректно обрабатывается! О котором даже не думал во время написания. А должен был подумать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.