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

В неубывающей последовательности целых чисел найти количество пар чисел с заданной разностью "D" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задание на строки и символы http://www.cyberforum.ru/cpp-beginners/thread606566.html
Выполнить надо на С++ Дана строка символов. Напечатать слова, которые начинаются и заканчиваются одной и той же буквой
C++ Функция fread и матрицы Подскажите, как правильно исп. эту ф-ию для считывания информации из файла в матрицу. Есть маленькая программка, которая никак не хочет работать верно. В чём ошибка, не пойму. Вот код: #include<iostream> using namespace std; int main() { FILE *fb; int a; int i,j,n; if((fb=fopen("file.dat","rb"))==NULL) http://www.cyberforum.ru/cpp-beginners/thread606540.html
Динамическая матрица. вставка столбца C++
не получается вставка. задание таково, что после столбцов, не содержащих отрицательные элементы нужно вставить 2 столбец. вылетаю на строке t=stroka с ошибкой Access violation writing location 0xcdcdcdcd. void Vstavka_stolbca(int **&q,int *stroka,int n,int m,int Number) { int i,j=0; int **t=new int *; for(i=0;i<m;i++) t=new int ; if (Number==0) {
C++ Изменить расширение файла
имя файла заранее не известно
C++ Ограничение char http://www.cyberforum.ru/cpp-beginners/thread606479.html
var c:char; if c in then begin ... end; Как сделать в с++?
C++ Если в строке есть элемент, равный среднему арифметическому элементов этой строки, то вставьте после него строку, состоящую из этих элементов Я нахожу среднее ариф., элемент равный среднему арифметическому, но не пойму как вставить строку из этих элементов..то есть нужно вставлять все те же самые элементы? вот что я написала int Srednee_arif (int **A,int N, int M)// ищет среднее арифметическое каждой строки {int i,j; int sum = 0; for (int i=0; i<N; i++) sum=0; { for (int j=0; j<M; j++) { ... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
16.06.2012, 05:23     В неубывающей последовательности целых чисел найти количество пар чисел с заданной разностью "D"
MilitaNt, Вам поможет двоичный поиск.
C++ (Qt)
1
2
3
4
5
6
for (int i = 1; i < vec.size(); i++)
{
    t=vec[i]+d;
    // и вот с этого места ищите в диапазоне от i+1 до vec.size()-1 элемент со значением t
    // как только его нашли, то влево и вправо просматриваете и считаете общее количество элементов со значением t, увеличивая при этом значение  counter
}
Если значение d может быть отрицательным, то сразу после считывания этого значения умножаете его на -1 (результат все равно посчитает правильно).
Если значение d может быть равным 0, то можно сделать так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for (int i = 1; i < vec.size(); i++)
{
    j=i+1;
    while(j<vec.size() &&  vec[i]==vec[j])
    {
        j++;
    }
    if(j>i+1)
    {
        t=j;
        while(t>i+1)
        {
            counter+=t-i+1;
            t--;
        }
        i=j-1;
    }
}
 
Текущее время: 04:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru