![>](style_images/1/nav_m.gif)
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.145.252] |
![]() |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Есть задачка
Заменить последнию единицу в двоичном представлении числа на 0 число INT для 45 101101 ответ 101100. всебы ничего но 1 условие, блин. Не используя циклов! у меня только рекурсией получилось, может можно как по другому. if if if тоже глупо... |
Сообщ.
#2
,
|
|
|
и так для каждого, бита пока на 1 не упрусь >:(
вот тебе и цикл. |
Сообщ.
#3
,
|
|
|
если б первую...
![]() А так -- пока вижу только 1) развернуть цикл или 2) спрятать его в рекурсию ![]() |
Сообщ.
#4
,
|
|
|
1:
int chislo = 45; chislo &= 0xfffffffe; 2: int chislo = 45; if( chislo \% 2 )chislo--; |
Сообщ.
#5
,
|
|
|
у меня получилось!
скину решение, на днях, может кто подумать хочет ![]() красивое решение ![]() |
Сообщ.
#6
,
|
|
|
Нафига там рекурсия?
|
Сообщ.
#7
,
|
|
|
2WinterMute
не нето, надо не только для 45 45 - 44 1024 - 0 1025 - 1024 |
Сообщ.
#8
,
|
|
|
Пришлось подумать
![]() c = с & !(!c+1) ![]() |
Сообщ.
#9
,
|
|
|
2Visitor
круто ![]() но ты наверное хотел с = с & ~(-c) :) мое решение с = с - ( с & ( -с ) ) на 1 с больше ![]() а с первой тоже неплохая задачка ![]() |
Сообщ.
#10
,
|
|
|
ну да, сорри, ~, пойду Си вспоминать
![]() |
Сообщ.
#11
,
|
|
|
Цитата если б первую... Почему, это вызвало такую легкость ? Не могу найти решения :-/ |
Сообщ.
#12
,
|
|
|
С певой там немного другие операции, не битовые
![]() |
Сообщ.
#13
,
|
|
|
WinterMute уже ответил:
INT ClearLeastBit(INT value) { return value & (int)-2; } Неверящие могут проверять ![]() |
Сообщ.
#14
,
|
|
|
2 trainer
![]() ![]() <br> 101001010111<br>=<br> 101001010110<br><br><br><br> 010101110000<br>=<br> 010101100000<br><br><br><br> 101100101000<br>=<br> 101100100000<br><br><br><br> 110100101010<br>=<br> 110100101000<br> я понятно объяснил ? |
Сообщ.
#15
,
|
|
|
Дык не разряд последний, а единицу последнюю. И еще в условии забыли слово "только"
![]() |