Higher
|
||||||
1 | ||||||
Найти следующее после n число, в двоичной записи которого столько же единиц22.08.2011, 13:25. Показов 5490. Ответов 43
Метки нет (Все метки)
Доброго времени суток.
Вопрос в названии темы, полное условие тут. Перебор не проходит. Пробовал так
Что-то не могу дойти... Если число - степень двойки, то ответом будет следующая за ним степень двойки. Больше никаких закономерностей не выявил... Желательно решить с использованием только побитовых операций, т.е. без массивов, битсетов, логарифмов и прочей нечисти.
0
|
22.08.2011, 13:25 | |
Ответы с готовыми решениями:
43
Найти следующее число, в двоичной записи которого столько же единиц, сколько и в двоичном представлении числа N Найти число в двоичной записи которого максимальное число единиц Найти следующее за заданным число, в двоичном разложении которого столько же единиц, сколько в двоичном разложении числа Среди простых чисел найти найти такое, в двоичной записи которого максимальное число единиц. |
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
22.08.2011, 14:26 | 21 |
1
|
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
|
|
22.08.2011, 14:32 | 23 |
Сейчас подумаю
Добавлено через 1 минуту Точно, надо искать 01, заменить на 10 и группу правых единиц сдвинуть вправо, спасибо, grizlik78. Сейчас сделаю
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
22.08.2011, 14:33 | 24 |
в условии ( y & 3 != 1) не учитывается приоритет.
У & он ниже, чем у !=
0
|
22.08.2011, 14:36 | 26 | |||||
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
22.08.2011, 14:37 | 27 |
Ну так со скобками там не (i-1) должно быть, а просто i. Но функция всё-равно делает не то, что надо
0
|
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
|
||||||
22.08.2011, 14:40 | 28 | |||||
0
|
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
|
||||||
22.08.2011, 14:45 | 30 | |||||
не не, вот
0
|
Higher
|
||||||
22.08.2011, 14:47 [ТС] | 31 | |||||
Я, видимо, чего-то не понимаю...
Но ответом на 182 должен быть 185. Мое решение в лоб
Т.е. не все так просто. Все должно быть еще проще =\ Лучшие попытки - 114 символов.
0
|
Higher
|
|
22.08.2011, 14:56 [ТС] | 33 |
Можно оставить перебор, но он будет загибаться на числах, которые являются степенью двойки - 1(т.е. в двоичной системе состоят только из единиц). Не могу понять, что на них выводить нужно.
0
|
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
|
||||||
22.08.2011, 14:57 | 34 | |||||
Вроде верно все
0
|
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
|
||||||
22.08.2011, 15:10 | 36 | |||||
Все:
1
|
848 / 190 / 18
Регистрация: 01.08.2011
Сообщений: 505
|
|||||||||||
22.08.2011, 15:21 | 38 | ||||||||||
Сначала ищем самую правую последовательность 01 и попутно считаем количество единиц, стоящих после 01. Понятно, что эти единицы следуют сразу за 01, например 1011100. Здесь ровно 2 единицы после 01. Единиц после 01 может и не быть, например 0100. Переменная j отвечает за количество этих единиц. Если j>0, то надо заменить 01 на 10 а эти j единиц переместить в конец:
1
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,167
|
||||||
22.08.2011, 15:32 | 39 | |||||
Чет взбрело в голову,
на бумаге прикинул, вроде должно считать правильно.
0
|
Higher
|
|
22.08.2011, 15:35 [ТС] | 40 |
Для степеней двойки надо умножать на 2. Это как минимум... Если (n + 1) - степень двойки, то надо еще что-то выводить. Может, еще частные случаи есть. А, и еще для единицы ответ 2 будет.
0
|
22.08.2011, 15:35 | |
22.08.2011, 15:35 | |
Помогаю со студенческими работами здесь
40
Среди простых чисел найти такое, в двоичной записи которого максимальное число единиц Среди простых чисел, не превосходящих N, найти такое, в двоичной записи которого максимальное число единиц Вывести десятичное простое число, в двоичной записи которого наибольшее число единиц Определить элемент массива, в двоичной записи которого максимальное число единиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |