|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.11.2013, 18:39 | #1 |
Пользователь
Регистрация: 30.09.2012
Сообщений: 51
|
вывод числа в котором все единичные разряды идут подряд
добрый день всем форумчанам. попытаюсь излагатся поконкретней мне в универе поставили задачу:
вывести все числа(предварительно переделав их в бинарный код) в которых все единичные разряды идут подряд при том эти числа меньше либо равны заданнаму нами числу. Пример дано число 28 в десятичной системе и числа соответствующее требованиям это 11100 (в двоичной) 01110 - это 14 , 00111 это число 7 , 01111 это число 13, 00011 это число 3 и 00001 это число 1 я сделал небольшой набросок хотя бы для 1 числа но и тут запутался Код:
|
02.11.2013, 19:14 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
не знаю, как это записывается в C++,
но Вам нужно воспользоваться операциями бинарного сдвига числа вправо: >> и логического И (операция "AND"): && алгоритм такой - ( число не равно нулю) выделяем с помощью (N && 1) последний бит и сдвигаем вправо, ждём 1 в младшем разряде: while ((N &&1) != 1) {N = N >> 1); После этого сдвигаем вправо до первого нуля. если при этом число целиком равно нулю - тогда условие выполнилось, в числе единицы идут подряд, иначе, если число не равно нулю - значит, не подходит число под выборку. Последний раз редактировалось Serge_Bliznykov; 02.11.2013 в 19:16. |
02.11.2013, 19:20 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Думаю что нужно что-то вроде такого:
Код:
I'm learning to live...
|
02.11.2013, 21:29 | #4 |
Пользователь
Регистрация: 30.09.2012
Сообщений: 51
|
попробовал написать но выдаёт всякую белиберду!!! вот код
Код:
Последний раз редактировалось dragodar; 02.11.2013 в 21:33. |
02.11.2013, 22:56 | #5 |
Пользователь
Регистрация: 30.09.2012
Сообщений: 51
|
вывод числа в котором все единичные разряды идут подряд
добрый день всем форумчанам. попытаюсь излагатся поконкретней мне в универе поставили задачу:
вывести все числа(предварительно переделав их в бинарный код) в которых все единичные разряды идут подряд при том эти числа меньше либо равны заданнаму нами числу. Пример дано число 28 в десятичной системе и числа соответствующее требованиям это 11100 (в двоичной) 01110 - это 14 , 00111 это число 7 , 01111 это число 13, 00011 это число 3 и 00001 это число 1 попробовал написать хотя бы для 1 числа(просто выводит число если оно соответствует требованиям) но выдаёт всякую белиберду!!! вот код Код:
|
02.11.2013, 23:02 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну уж, как минимум вместо
Цитата:
Код:
|
|
02.11.2013, 23:33 | #7 |
Пользователь
Регистрация: 30.09.2012
Сообщений: 51
|
насчёт n=number я согласен это опечатка в проге я давно переделал а вот дальше незнаю по сути как я понял
1) мне надо сделать проверку на числа до первой единицы 2) потом проверку на последовательность единиц(подряд) 3)потом проверка на то есть ли нули после ряда единиц (по моему через if) 4)а последняя проверка по сути проверка есть ли единица после 3 проверки(тоже по моему через if) в итоге циклов у меня мало( но как сделать незнаю! Последний раз редактировалось dragodar; 03.11.2013 в 00:09. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить сумму цифр во второй половине числа (младшие разряды). | mirqa | Помощь студентам | 1 | 15.06.2012 09:08 |
Вывод списка символов справа налево 5 раз подряд и исключить вывод цифр | Gareek | Помощь студентам | 2 | 23.12.2011 21:41 |
Вывести номер столбца в котором все элементы отрицательные. | Jully19 | Помощь студентам | 7 | 22.06.2011 19:34 |
Выделить из числа значимые восьмиричные разряды | green_ | Помощь студентам | 2 | 28.10.2009 19:43 |