Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Алинушка
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 8
1

Определить в двоичном представлении числа максимальное количество расположенных рядом единиц

19.06.2015, 22:28. Просмотров 1007. Ответов 6
Метки нет (Все метки)

Дано короткое целое неотрицательное число. Определить в его двоичном представлении максимальное количество расположенных рядом единиц.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2015, 22:28
Ответы с готовыми решениями:

Определить, каких цифр больше в двоичном представлении натурального числа N-нулей и единиц
Определить, каких цифр больше в двоичном представлении натурального числа...

Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц
Определить, каких цифр больше в двоичном представлении натурального числа N –...

Определить количество битов, равны единице, в двоичном представлении числа
Напишите программу, в которой необходимо определить количество битов, равны...

Сохранить в множество те числа, в двоичном представлении которых ровно n единиц
Задан диапазон целых чисел. Сохранить в множество те числа, в двоичном...

Определить, сколько единиц содержится в двоичном представлении переменной типа char
Помогите чайнику....Напишите програмку на C++, которая определяет сколько...

6
Mr.X
Эксперт С++
3180 / 1707 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
19.06.2015, 23:26 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/////////////////////////////////////////////////////////////////////////////////////////
//Дано короткое целое неотрицательное число. Определить в его двоичном представлении 
//максимальное количество расположенных рядом единиц.
/////////////////////////////////////////////////////////////////////////////////////////
#include <bitset>
#include <cstdlib>
#include <ctime>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int     count_1_in_row( short   n )
{
    for( int  i = 0; ; ++i )
    {
        n   &=  n   <<  1;
 
        if( !n )
        {
            return  i + 1;
        }
    }//for
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    srand(unsigned(time(0)));
 
    for(;;)
    {
        short   n   =       rand()
                        %   SHRT_MAX;
 
        std::bitset     < sizeof(short) * CHAR_BIT  >   B(n);
 
        std::cout   <<  std::endl
                    <<  B.to_string()
                    <<  std::endl
                    <<  count_1_in_row( n )
                    <<  std::endl;
 
        system("pause");
    }//for
}
1
Алинушка
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 8
20.06.2015, 00:08  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <iostream>
#define N 16
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "");
    unsigned short n; //n - исходное число
    unsigned short temp; //temp - промежуточная переменная
    int k, i, a[N];
    printf("Введите короткое целое неотрицательное число\n ");
    scanf_s("%i", &n); 
    k = 0;  
    for (i = N; i > 0; i--)
    {
        temp = n;
        temp >>= i-1;
        if (temp == 1)
            k++;
        else
            k = 0;
        a[i] = k;
    }
    k = a[1];
    for (int i = 0; i < N; i++) //цикл по длине короткого числа - 2 байта - 2х8=16
        if (a[i] > k)
            k = a[i];
 
    printf("Максимальное количество расположенных рядом единиц в двоичном представлении данного числа = %i\n", k); 
    system("pause");
}
а тут что не так?выводит 1, какое бы число не ввела.
0
gazlan
3141 / 1917 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
20.06.2015, 00:10 4
Алгоритм Госпера
0
Алинушка
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 8
20.06.2015, 00:25  [ТС] 5
разве это относится к задаче?
0
gazlan
3141 / 1917 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
20.06.2015, 00:52 6
Пройдите по ссылке.
0
Mr.X
Эксперт С++
3180 / 1707 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
20.06.2015, 08:51 7
Исправил ошибку. Теперь правильно ноль обрабатывает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/////////////////////////////////////////////////////////////////////////////////////////
//Дано короткое целое неотрицательное число. Определить в его двоичном представлении 
//максимальное количество расположенных рядом единиц.
/////////////////////////////////////////////////////////////////////////////////////////
#include <bitset>
#include <cstdlib>
#include <ctime>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int     count_1_in_row( short   n )
{
    for( int  i = 0; ; ++i )
    {
        if( !n )
        {
            return  i;
        }
 
        n   &=  n   <<  1;
    }//for
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    srand(unsigned(time(0)));
 
    for(;;)
    {
        short   n   =       rand() % 2
                                ?       rand()
                                    %   SHRT_MAX
 
                                :   0;
 
        std::bitset     < sizeof(short) * CHAR_BIT  >   B(n);
 
        std::cout   <<  std::endl
                    <<  B.to_string()
                    <<  std::endl
                    <<  count_1_in_row( n )
                    <<  std::endl;
 
        system("pause");
    }//for
}
0
20.06.2015, 08:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2015, 08:51

Подсчетать количество единичных разрядов на нечетных местах в двоичном представлении числа
4. Записать программу для подсчета количества единичных разрядов на нечетных...

Определить, каких бит (0 или 1) больше в двоичном представлении числа
Напишите программу, в которой необходимо определить, каких бит (0 или 1) больше...

Узнать количество битов, что равны нулю в двоичном представлении значения числа
Написать програму в которой необходимо узнать количество битов что равны нулю в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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