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

Найти пары элементов массива сумма которых является степенью двойки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение данных из файла последовательного доступа http://www.cyberforum.ru/cpp-beginners/thread1787553.html
Доброго времени суток , столкнулся с такой проблемой. Информация: Данные в файле: 10228 John GREY 5638.5 32255 Alice Nata 1058.46
C++ Спецификатор преобразования Доброго времени суток. Сегодня при изучении материала по работе с файлами натолкнулся на такой вопрос. Программы ниже иллюстрирует чтение данных из файла последовательного доступа. // File Working #include <stdio.h> http://www.cyberforum.ru/cpp-beginners/thread1787548.html
Посчитать, хватит ли поросятам тугриков для подключения к компьютерной сети (задача acmp №57) C++
Задача acmp №57 (Время: 1 сек. Память: 16 Мб Сложность: 33%): Компания «Маша и медведи» является самым крупным интернет-провайдером во всем лесу. Именно поэтому, с просьбой подключить их к интернету обратились N поросят. Домики поросят расположены в различных точках (xi, yi). Ближайшая точка подключения расположена в точке (xnet, ynet). Для того чтобы подключиться к сети всем N поросятам...
Нахождение разбиений числа C++
Все привет, ребят помогите. Суть задания: разбиений числа, есть число, нужно его разбить. Например, {3,1,1} или {3,2} — разбиения числа 5, поскольку 5 = 3 + 1 + 1 = 3 + 2. Всего существует p(5) = 7 разбиений числа 5: {1,1,1,1,1}, {2,1,1,1}, {2,2,1}, {3,1,1}, {3,2}, {4,1}, {5}. Ну вы поняли, и мне надо сделать диапазон, типо что бы пользователь задавал на какие числа он хочет разбить заданное...
C++ Взять элементы из определенного листа http://www.cyberforum.ru/cpp-beginners/thread1787463.html
list<int>route; vector<list<int>>routes; route.push_back(.) routes.push_back(route) for(int start = 0 ; start = routes.size();start++) { for().. for()..
C++ Построить латинский квадрат используя циклический сдвиг Написать программу для решения следующей задачи. построить латинский квадрат,используя циклический сдвиг. Латинский квадрат-матрица размером N x N, элементы которой равны 1,2..N и каждое число встречается только один раз в каждой строке и каждом столбце. Это нужно через объекты делать) Заранее огромное человеческое спасибо!!!)) подробнее

Показать сообщение отдельно
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
30.07.2016, 13:29     Найти пары элементов массива сумма которых является степенью двойки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
 
bool is_power2(int k)
{
    int count1=0;
    while(k)
    {
        count1+=(k&1);
        k>>=1;
    }
    return !(count1-1); // должна быть всего одна единичка
}
int main()
{
 
    int n;
    cin >> n;
    int* mas=new int[n];
    for (int i = 0; i<n; i++)
    {
        cin >> mas[i];
    }
 
    int pair = 0;
    for (int k = 0; k< n - 1; k++)
    {
        for (int j = k + 1; j<n; j++)
        {
            if( is_power2(mas[k] + mas[j]) )
                ++pair;
        }
    }
    delete[] mas;
    cout << pair<<endl;
    system("pause");
    return 0;
}
 
Текущее время: 02:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru