Нравятся мне эти задачки, несложные, но хитрые :) Вот еще одна.
Дано целое натуральное число. Без использования циклов и рекурсии поменять значение самого крайнего правого бита, равного 0, на 1.
Например, 0101 -> 0111; 1010 ->1011
Решение:value | (value+1)
2 коммент.:
Pascal/Delphi: x := x xor 1;
C/C++: x ^= 1;
Не совсем так : 0011 xor 0001 = 0010, а должно получиться 0111 (по условиям задачи нужно поменять крайний правый бит , равный 0, на 1).
Отправить комментарий