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

Бинарный поиск (самое левое вхождение) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка "C2065: сout: необъявленный идентификатор" http://www.cyberforum.ru/cpp-beginners/thread1232434.html
Привет! Создала свою первую программу,правда с помощью книги. Вылезла ошибка: \convert_main.cpp(32) : error C2065: сout: необъявленный идентификатор. Помогите разобраться. // // Программа для...
C++ Нужен алгоритм, который будет считать формулу, введённую пользователем в виде строки Задача такая: пользователь вводит с клавиатуры формулу, с заведомо неизвестным количеством переменных, а программа должна эту формулу посчитать. Я так понимаю, что строку нужно как-то отсортировать и... http://www.cyberforum.ru/cpp-beginners/thread1232400.html
При значении больше 10 выводит неверный результат C++
При вводе чисел до 10, например 4 выводится результат 4 = 4.02725. Начина с 10 результат такой 10=10. Почему так ? #include <iostream> using namespace std; int main () { setlocale(0,""); ...
Наследство. Найти минимальное и максимальное возможное общее количество медальонов C++
Владелица большой недвижимости стала настолько стара, что уже не встает с постели. По этой причине ее любящие N дочери начали обсуждать наследство своей матери. Самой младшей дочери надоело просто...
C++ Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию http://www.cyberforum.ru/cpp-beginners/thread1232384.html
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток вот пример но в нем ошибки #include <vector> #include <algorithm> #include...
C++ Оператор "delete" и ошибка "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Error" Здравствуйте. Возникла проблема с оператором "delete". Пользуюсь VisualStudio 2010. Программа компилируется нормально. Все отрабатывает. Когда дело доходит до освобождения памяти, выделенной... подробнее

Показать сообщение отдельно
salam
163 / 144 / 12
Регистрация: 10.07.2012
Сообщений: 734
24.07.2014, 05:43
C++
1
2
3
4
5
6
7
8
9
10
11
    int a[15] = { 1, 2, 2, 3, 3, 4, 5, 5, 5, 6, 7, 8, 8, 9, 10 };
    int x;
    cin >> x;
    int l = 0, r = 15;
    while(r - l > 1) {
        int mid = (l + r) >> 1;
        if(a[mid] < x)
            l = mid;
        else r = mid;
    }
    cout << r << endl;
инвариант должен быть: http://www.cyberforum.ru/cgi-bin/latex.cgi?l указывает на меньшие, http://www.cyberforum.ru/cgi-bin/latex.cgi?r - на большие либо равные.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru