Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 68
#1

Посчитать сколько двоичных единиц содержит каждое число массива. - C++

03.07.2013, 12:52. Просмотров 1498. Ответов 16
Метки нет (Все метки)

Всем доброго дня! Вообщем дали на практике задание: Дан цифровой массив, посчитать сколько двоичных единиц содержит каждое число. Помогите пожалуйста. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2013, 12:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать сколько двоичных единиц содержит каждое число массива. (C++):

Посчитать сколько двоичных единиц содержит каждое число - C++
Дан цифровой массив , посчитать сколько двоичных единиц содержит каждое число

Ввести целое число A и посчитать, сколько единиц в числе с 5 бита по 10 бит, включая эти биты - C++
УСЛОВИЕ --- Ввести целое число A и посчитать, сколько единиц в числе с 5 бита по 10 бит, включая эти биты. #include <iostream> ...

Посчитать, сколько слов содержит строкв - C++
нужно написать программу на С: дана строка символов до точки. Посчитать,сколько слов она содержит. помогите,пожалуйста..

Посчитать, сколько слов содержит текст произвольной длины. - C++
Посчитать сколько слов, содержит текст поисзвольной длины. Разделителем между словами является символ пробела. Вывести на экран список всех...

Одномерный массив: сколько раз повторяется каждое число - C++
помогите решить такую задачку: есть одномерный массив, в котором n элементов, мы вводим в него числа и надо определить сколько раз...

Подсчитать,сколько раз каждое число встречается в файле - C++
Помогите ,кому нетрудно с лабораторной работой. Задание: подсчитать,сколько раз каждое число встречается в тексте файла number1.txt. Все...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 12:53 #2
C++
1
2
3
4
int Count(unsigned a)
{
   return a ? (a & 1) + Count(a >> 1) : 0;
}
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
03.07.2013, 12:57 #3
Thinker,
опять рекурсия
вот без неё
C++
1
2
3
4
5
6
7
8
9
10
int Count(unsugned a)
{
   int count=0;
   while(a)
    {
       count+=a&0x01;
      a/=2;
    }
 return   count;
}
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 68
03.07.2013, 12:58  [ТС] #4
Цитата Сообщение от Thinker Посмотреть сообщение
Код C++
1
2
3
4
int Count(unsigned a)
{
* *return a ? (a & 1) + Count(a >> 1) : 0;
}
Спасибо большое, но можешь весь код программы скинуть?А то я не разберусь(((
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 13:02 #5
Цитата Сообщение от ACTIV1 Посмотреть сообщение
весь код программы скинуть?А то я не разберусь
это же практика у вас, вот и повод разобраться вызывайте эту функцию для каждого элемента массива, делов то

Добавлено через 41 секунду
Цитата Сообщение от ValeryS Посмотреть сообщение
опять рекурсия
зато как красиво она позволяет писать программы
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
03.07.2013, 13:03 #6
Цитата Сообщение от ACTIV1 Посмотреть сообщение
А то я не разберусь(((
если знаешь
что такое двоичное представление числа
что такое сдвиг
что такое И ИЛИ НЕ ИСКЛЮЧАЮЩЕЕ ИЛИ
то и этого достаточно
если нет то и полный код программы не поможет

Добавлено через 52 секунды
Цитата Сообщение от Thinker Посмотреть сообщение
зато как красиво она позволяет писать программы
да
но какие нагрузки на стек
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 13:04 #7
Цитата Сообщение от ValeryS Посмотреть сообщение
да
но какие нагрузки на стек
ну, это понятно, зато когда можно и так и так, то это же здорово
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 68
03.07.2013, 13:07  [ТС] #8
Почему не поможет?)))Очень поможет, сделаю отчёт и сдам, и поеду раньше домой.....будьте добры помочь))))
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 13:21 #9
вспомните Ломоносова. какие там "раньше домой". грызите гранит науки!

ValeryS, ладно, вот итерация

C++
1
2
for(count = 0; a; count += (a & 1), a >>= 1)
   ;
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
03.07.2013, 13:28 #10
Цитата Сообщение от Thinker Посмотреть сообщение
ладно, вот итерация
уломал, чертяка
только чем твой for отличается от моего while ?
кроме формы записи
сильно подозреваю,что сгенерится один и тот же код
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 13:30 #11
Цитата Сообщение от ValeryS Посмотреть сообщение
только чем твой for отличается от моего while ?
количеством строчек
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 68
03.07.2013, 13:34  [ТС] #12
Вот код программы, но я не пойму, как сделать, чтобы можно было вводить в строчку несколько чисел(именно сам цифровой массив) и далее кол-во единицы из каждого числа скалывались. Можете с этим помочь?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
int main()
{
   int n,k=0;
   cin >> n;
   while (n)
   {
      k+=n&1;
      n>>=1;
   }
   cout << k;
   return 0;
}
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
03.07.2013, 13:35 #13
Цитата Сообщение от ACTIV1 Посмотреть сообщение
как сделать, чтобы можно было вводить в строчку несколько чисел(именно сам цифровой массив)
а массив то у тебя где?
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 68
03.07.2013, 13:42  [ТС] #14
Ну как я понял, вводится число n, это и есть моё ОДНО число.
SatanaXIII
Супер-модератор
Эксперт С++
5609 / 2643 / 244
Регистрация: 01.11.2011
Сообщений: 6,502
Завершенные тесты: 1
03.07.2013, 13:48 #15
Цитата Сообщение от ACTIV1 Посмотреть сообщение
вводить в строчку несколько чисел
cin такого не умеет. Это надо после каждого ввода (нажатия на Enter) врукопашную возвращать в нужную позицию положение курсора.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 13:48
Привет! Вот еще темы с ответами:

Определить, сколько раз каждое число используется в массиве - C++
Вот код: #include &lt;iostream&gt; using namespace std; int main() { //двухмерный массив int numbers = {{1, 2, 7} , {2, 5, 3},...

Определить, сколько цифр содержит число - C++
5 задача во вложение помагите в моём быдло коде количество цифр длинного ряда выводит а какая цифра не то значение если есть другие...

Циклы: каждое простое число последовательности увеличить в два раза, посчитать количество простых чисел - C++
Вводится последовательность из N целых чисел. Каждое простое число последовательности увеличить в два раза, посчитать количество простых...

Дано натуральное число N. Выяснить, сколько положительныхэлементов содержит матрица - C++
Помогите аписать программу на Си, вот условие:Дано натуральное число N. Выяснить, сколько положительных элементов содержит матрица Аij ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.07.2013, 13:48
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru