Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как самый правый 0 заменить на 1?

Сид Просветленный (47531), закрыт 16 лет назад
Есть произвольное бинарное число, например 1100010101011. Назовём его Х. Как, НЕ используя циклы, заменить в нём самый правый 0 на 1? (на выходе 1100010101111)

Для тех, кто в танке: исходное число - ЛЮБОЕ!
Лучший ответ
Игорь Андронов Гений (54631) 16 лет назад
Сначала добавим 1 к исходному числу, получим число где все единицы до первого правого нуля будут 0 а первый 0 справа станет 1
затем исходное и полученное число складываем по правилу ИЛИ (OR)
и получим необходимый вам ответ... .

С уважением.
Остальные ответы
Ivan Safonov Мастер (1576) 16 лет назад
условие "не использовать циклы" можно обойти при помощи рекурсивного вызова функции
Похожие вопросы