|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.05.2011, 13:27 | #1 |
Пользователь
Регистрация: 30.04.2010
Сообщений: 15
|
Сосчитать количество единиц в двоичной записи числа i (c++)
Помогите,пожалуйста, написать программу. Сосчитать количество единиц в двоичной записи числа i.
Есть пример на Паскале, но я его не могу переделать в c++. Код:
Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы. В последующем, темы с названием наподобие "C++" будут закрываться или удаляться, а автор такой темы будет получать штрафные баллы. Учтите это на будущее. __________________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! __________________ Модератор. Последний раз редактировалось Serge_Bliznykov; 07.05.2011 в 16:20. |
07.05.2011, 13:39 | #2 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
Последний раз редактировалось Serge_Bliznykov; 07.05.2011 в 16:20. |
16.04.2016, 22:14 | #3 |
Регистрация: 21.07.2011
Сообщений: 5
|
Ответ с доказательством.
Некропост, но всё же.
Выше были приведены два варианта для решения подобной задачи. Первый - на Паскале - у меня обозначен как version2. Второй - у Rififi - у меня обозначен как version1. Разница в количестве итераций циклов. В случае version1 цикл проработает столько раз, сколько значащих разрядов в двоичном представлении числа. В случае version2 цикл проработает ровно столько раз, сколько единиц в этом самом представлении. Вывод: version2 работает быстрее. На большом количестве тестов может сыграть роль. Доказательство: на примере 1000 0000 (128 в двоичной). 1) version1 произведёт восемь итераций. i - номер итерации, n - число. i n 1 10000000 2 1000000 3 100000 4 10000 5 1000 6 100 7 10 8 1 2) version2 произведёт лишь одну итерацию. 10000000 & (10000000 - 1) == 10000000 & 1111111 == 0 Ну и код: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка в двоичной записи числа | proag | Помощь студентам | 3 | 18.02.2011 13:21 |
подсчитать количество единиц входящий в текст | LILI26092009 | Помощь студентам | 1 | 07.11.2010 09:58 |
Сосчитать количество | dumaika | Microsoft Office Excel | 6 | 30.04.2010 12:31 |
вывод числа в двоичной системе | jewels | Общие вопросы C/C++ | 12 | 11.03.2010 22:20 |