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

Найти следующее после n число, в двоичной записи которого столько же единиц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ класс дата http://www.cyberforum.ru/cpp-beginners/thread344218.html
Создать класс типа - дата с полями: день (1-31), месяц (1-12), год(целое число).Класс имеет конструктор:с параметрами, без параметров,копирования; деструктор; функции-члены получения дня,месяца и года,а также две функции-члены печати по шаблону: "5 января 1997 года" и "05.01.1997"; функции-члены должны проверять корректность задаваемых параметров. Помогите пожалуйста с определением класса! Вот...
C++ CodeLite - отсутствуют библиотеки Здравствуйте, дорогие форумчане. Необходима кросcплатформенная среда разработки C++. На рабочем компе через центр приложений (Ubuntu) поставил CodeLite. Столкнулся с проблемой отсутствия инклудов windows.h, conio.h и т.д. Проекты просто не запускаются. На домашнем ПК пользуюсь Visual Studio, поэтому с подобной проблемой никогда не сталкивался. В инете манов по это поводу не нашел. Прошу... http://www.cyberforum.ru/cpp-beginners/thread344179.html
C++ Получить список студентов с указанием среднего балла
имеется информация о студентах группы: Ф.И.О., результаты экзаменационной сессии. Мне надо получить список студентов с указанием среднего балла. Для решения данной задачи мне надо использовать массив структур или можно как-то по другому сделать? Если да, то как?
Код ждёт ввода следующей строчки - цикл повторяется бесконечно. C++
В учебнике написано, что вот этот код #include <iostream> #include <string> using namespace std; int main() { string word; while (cin >> word) cout << "прочитано слово: " << word << "\n";
C++ смена IP-адреса http://www.cyberforum.ru/cpp-beginners/thread344162.html
день добрый. не подскажите как программно заставить венду сменить IP ?
C++ Немного о динамическом выделении памяти ... объявление данных в классе: class Employee {.......... private: char *firstName; char *lasrName; } подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.08.2011, 14:47  [ТС]     Найти следующее после n число, в двоичной записи которого столько же единиц
Я, видимо, чего-то не понимаю...
Но ответом на 182 должен быть 185.
Мое решение в лоб
C++
1
2
3
4
5
6
7
8
9
10
11
12
int f(int n){
    std::string bin = std::bitset<15> (n).to_string();
    for (int i = bin.size() - 1; i > 0; --i)
    {
        if (bin[i] == '1' && bin[i - 1] == '0')
        {
            std::swap(bin[i], bin[i-1]);
            break;
        }
    }
    return strtol(bin.c_str(), 0, 2);
}
А также функция villu выдают 186. Функция Ольги вообще что-то левое выдает >_> Дело в алгоритме, видимо...
Т.е. не все так просто. Все должно быть еще проще =\ Лучшие попытки - 114 символов.
 
Текущее время: 08:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru