Здравствуйте, мыщъх, Вы писали:
М>считаю, что под такую задачу можно искать или матерых хакеров, которые это делают в уме (ну в частности, на вопрос что сие значит (x & ( x + 1)) я ответил не раздумывая. меня даже плюс не смутил (в реальной жизни там минус), но это не потому, что у меня мозги работают с космической скоростью, а потому что этот шаблон я регулярно вижу на протяжении всей моей жизни.
У меня другое мнение. Вот спросят меня, "что делает (x & ( x + 1))?" Я ни разу не хакер и эту хрень первый раз в жизни вижу, но что я первым делом начну делать (если интернета нет под рукой)? А начну я выписывать цифекрки:
0 1|1 0 1 0|2 0 1 1|3 1 0 0|4 1 0 1|5 1 1 0|6 0 1 1 1|7 1 0 0 0|8 1 0 0 1|9 1 0 1 0|A 1 0 1 1 1|17
1 0|2 0 1 1|3 1 0 0|4 1 0 1|5 1 1 0|6 1 1 1|7 1 0 0 0|8 1 0 0 1|9 1 0 1 0|A 1 0 1 1|B 1 1 0 0 0|18
--- ----- ----- ----- ----- ----- ------- ------- ------- ------- .... ---------
0 0|0 0 1 0|2 0 0 0|0 1 0 0|4 1 0 0|4 1 1 0|6 0 0 0 0|0 1 0 0 0|8 1 0 0 0|8 1 0 1 0|A 1 0 0 0 0|10
И так до просветления. И что я увижу? Увижу то, что четные цифры оно не трогает, а у нечетных убирает все единички до младшего нуля, что эквивалентно вычитанию чего-то там (ответ зависит от степени моего просветления). Ну или просто убирает все единички до младшего нуля, потому что у четных цифр он в самом начале, т.е. и убирать-то нечего. Это и будет моим ответом на вопрос. И тот, кто этот вопрос мне задаёт, по тому, насколько быстро у меня наступит просветление и насколько оно было глубоким, сможет сделать вывод о моих способностях. А если я по ночам Hacker's Delight читал под одеялом и отвечаю на этот вопрос по памяти, то мне его, наверное, нет особого смысла задавать, проще про коней спросить. Тут-то и можно будет оценить, смогу ли я разработать какую-нибудь систему для решения новой для себя задачи и насколько далеко смогу продвинуться.