1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Сортировка в двоичной записи числа

Тема в разделе "С и С++", создана пользователем 9a9z9a, 18 фев 2011.

  1. 9a9z9a

    9a9z9a Гость

    Репутация:
    0
    Здравствуйте. Объясните, пожайлуста, как это отсортировать массив по возрастанию количества единиц в двоичной записи часла? Не понимаю условия. Я так пнимаю ,есть ,например число 777 и его двоичный код 1100001001. Ну и как тут сортировать? Или я чего недопонимаю? ;)
     
  2. ierofant

    ierofant Гость

    Репутация:
    0
    Что же тут непонятного...
    Допустим числа 3 (11), 4 (100), 7 (111).

    Меньше всего единиц в 4-ке, больше всего в 7-ке.
    То есть получится при сортировке: 4, 3, 7.
     
  3. 9a9z9a

    9a9z9a Гость

    Репутация:
    0
    ierofant ,спасибо. Возник еще один вопрос. Как присвоить указателю на int значение функции , возвращающей int?

    int f(int *x);
    *pB++ = f(pA); , где pA адрес первой строки матрицы, pB ардесс второй. Во вторую будем записывать количество едениц в числе, которое передаеться в функцию (pA) :)
     
  4. ierofant

    ierofant Гость

    Репутация:
    0
    Ничего не понял, что вы хотите. Вот мой вариант решения:
    Код:
    #include <iostream>
    #include <bitset>
    #include <algorithm>
    #include <ctime>
    
    typedef std::bitset<7> Bits;
    void my_rand (Bits &_bits) {_bits = rand () % 100;}
    void bits_out (const Bits &_bits) {std::cout << _bits.to_ulong () << "\t-\t" << _bits << std::endl;}
    bool comp (const Bits &_bits1, const Bits &_bits2) {return _bits1.count () < _bits2.count ();}
    
    int main ()
    {
    srand (time (NULL));
    
    int size;
    std::cout << "Введите количество элементов: ", std::cin >> size;
    
    Bits mas [size];
    std::for_each (mas, mas + size, &my_rand);
    
    std::cout << "Исходный массив: " << std::endl;
    std::for_each (mas, mas + size, &bits_out);
    std::cout << std::endl;
    
    std::sort (mas, mas + size, &comp);
    
    std::cout << "Отсортировынный массив: " << std::endl;
    std::for_each (mas, mas + size, &bits_out);
    std::cout << std::endl;
    
    return 0;
    }
     
Загрузка...
Похожие Темы - Сортировка двоичной записи
  1. vera2014
    Ответов:
    0
    Просмотров:
    1.338
  2. Liori
    Ответов:
    3
    Просмотров:
    1.202
  3. FCDK
    Ответов:
    0
    Просмотров:
    1.407
  4. ленарано
    Ответов:
    1
    Просмотров:
    1.247
  5. Creder
    Ответов:
    0
    Просмотров:
    1.467

Поделиться этой страницей