Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2019, 17:37   #1
LomionDK
Пользователь
 
Регистрация: 24.02.2019
Сообщений: 33
По умолчанию В двоичном представлении которых ровно k разрядов установленных в «101»

Доброе время суток. Есть задача:Вывести числа из диапазона от n до m , в двоичном представлении которых ровно k разрядов установленных в «101». Число k, n, m вводится пользователем. Использовать операции сдвига и побитового умножения.

Понял, как найти 01 в двоичной системе, но вот 101 не знаю как.
Вот алгоритм нахождения кол-ва "01" в двоич.системе выбранного числа.
Код:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    int a, k = 0;
    printf("Vvedite chislo: ");
    scanf_s("%d", &a);
    while (a)
    {
        if (a & 1)
        {
            if (!((a >> 1) & 1))
            {
                a = a >> 1;
                k++;
            }
        }
        a = a >> 1;
 
    }
    printf("%d\n", k);
    system("pause");
    return 0;
}
На Си
LomionDK вне форума Ответить с цитированием
Старый 18.06.2019, 17:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от LomionDK Посмотреть сообщение
Есть задача:Вывести числа из диапазона от n до m , в двоичном представлении которых ровно k разрядов установленных в «101»
задача какая-то странная.
что такое "ровно k разрядов установленных в «101»" ?!

приведите пример нескольких подходящих чисел (в двоичном виде) для k=3, например.
1010101 - подходит?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2019, 17:52   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А как вообще k разрядов, кроме k = 3, может быть установлено в 101?
p51x вне форума Ответить с цитированием
Старый 18.06.2019, 17:55   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А как вообще k разрядов, кроме k = 3, может быть установлено в 101?
есть подозрение, что k - это количество групп

например, для k=2 1010000101

но это неточно
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2019, 17:58   #5
LomionDK
Пользователь
 
Регистрация: 24.02.2019
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
задача какая-то странная.
что такое "ровно k разрядов установленных в «101»" ?!

приведите пример нескольких подходящих чисел (в двоичном виде) для k=3, например.
1010101 - подходит?
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
задача какая-то странная.
что такое "ровно k разрядов установленных в «101»" ?!

приведите пример нескольких подходящих чисел (в двоичном виде) для k=3, например.
1010101 - подходит?
Я так понял, что нет. Тут будет 2. После того, как посчитало одну "101", должно сдвигаться на 3.
Т.е. будет так:
1010101 - считаем первую комбинацию n=1
1010, т.к. уже сдвинули 3 предыдущих, если не находим новый "101", продвигаем на 1.
101, тут опять получается, что подходит. В итоге n=2.
Закончили на этом
LomionDK вне форума Ответить с цитированием
Старый 18.06.2019, 17:58   #6
LomionDK
Пользователь
 
Регистрация: 24.02.2019
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
есть подозрение, что k - это количество групп

например, для k=2 1010000101

но это неточно
Именно так. Это в билете на экзамене. Неправильно сформулировали они там(
LomionDK вне форума Ответить с цитированием
Старый 18.06.2019, 19:43   #7
LomionDK
Пользователь
 
Регистрация: 24.02.2019
Сообщений: 33
По умолчанию

Что-то совсем непонятно...
LomionDK вне форума Ответить с цитированием
Старый 18.06.2019, 19:56   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

and с 7 равен 5 тогда последние три бита 101 и сдвиг вправо на 3, иначе сдвиг вправо на 1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.06.2019, 20:37   #9
LomionDK
Пользователь
 
Регистрация: 24.02.2019
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
and с 7 равен 5 тогда последние три бита 101 и сдвиг вправо на 3, иначе сдвиг вправо на 1
Большое спасибо
LomionDK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сколько существует таких трехзначных чисел, у которых ровно n натуральных делителей Sul Фриланс 5 22.04.2017 02:29
В двоичном представлении числа инвертировать последнюю цифру. Lexman777 Паскаль, Turbo Pascal, PascalABC.NET 6 25.01.2012 10:42
найти все четырехзначные числа, в которых ровно две одинаковые цифры (турбо паскаль) SkuLLL Помощь студентам 5 23.01.2012 19:23
Вывести числа, из диапазона от n до m у которых, количество единичных разрядов в двоичном представлении числа нечетно sheff123 Помощь студентам 8 05.01.2012 15:35
Найти все целые числа,у которых ровно 6 делителей; jenja Общие вопросы C/C++ 3 03.10.2008 20:32