0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 9
1

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

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

Дано короткое целое неотрицательное число. Определить в его двоичном представлении максимальное количество расположенных рядом единиц.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2015, 22:28
Ответы с готовыми решениями:

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

Определить количество единиц в двоичном представлении числа
1.напишите рекурсивную функцию,определяющую количество единиц в двоичном представлении числа...

Количество единиц в двоичном представлении числа N
Определить, количество единиц в двоичном представлении числа N

Посчитать количество единиц в двоичном представлении заданного числа
Доброго времени суток! Прошу помощи) задача следующая: нужно посчитать количество единиц в...

6
Эксперт С++
3220 / 1747 / 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
Сообщений: 9
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
3174 / 1933 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
20.06.2015, 00:10 4
Алгоритм Госпера
0
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 9
20.06.2015, 00:25  [ТС] 5
разве это относится к задаче?
0
3174 / 1933 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
20.06.2015, 00:52 6
Пройдите по ссылке.
0
Эксперт С++
3220 / 1747 / 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2015, 08:51
Помогаю со студенческими работами здесь

Посчитать двоичный вес числа (количество единиц в двоичном представлении числа)
С клавиатуры вводится натуральное число. Посчитать двоичный вес числа (количество единиц в двоичном...

Найти сумму ряда, где f (n) - количество единиц в двоичном представлении числа n
Ещё одна задача со вступительного экзамена в ШАД. Найти сумму ряда \sum_{n=1}^\infty...

Подсчитать количество двоичных единиц в двоичном представлении заданного целого неотрицательного числа
Нужно написать программу на ассемблере, чтобы работа в SASM. Задача: Подсчитать количество...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru