Re[3]: Задачи для собеседования.
От: мыщъх США http://nezumi-lab.org
Дата: 24.02.12 20:25
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, мыщъх, Вы писали:


ПМ>ИМХО нет смысла давать получасовую задачу, особенно если в процессе её решения не о чем разговаривать с кандидатом. Задача неразрешима, если число — 0.

в этом случае функции next_bigger_num(x)/prev_lower_num(x) должны вернуть ошибку, не?

> Ближайшее большее — сдвиг исходного числа на один бит влево,

> зануление всех бит, кроме самого старшего, установка n — 1 младших бит
чего-чего?! мы начинаем двигать самый младший бит влево до тех пор, пока на следующей позиции не окажется нуль.
или нет, даже не так. если представить биты в виде строки, для удобства инвертированной слева-направо. и нужно найти первый '1+0', после чего заменить его на '01+' (регулярна в псевдофрме).

осталось только записать решение, используя сложение, вычитание, свдиг, or, and, xor и чего еще душе угодно. и вот как его записать я не так долго думал, как отлаживал. сначала наплодил кучу промежуточных переменных, а когда стал их "сворачивать", где-то лажанулся и долго ходил кругами.


М>>предлагаю дать задачу сравнения двух деревьев. а разворот списка это, извините, в детсад и на горшке сидеть.

ПМ>Нам бы хоть так...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.