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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Stayer777
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 3
#1

Объясните принцип действия алгоритма!!! - C++

07.06.2009, 14:56. Просмотров 355. Ответов 0
Метки нет (Все метки)

Это задача о сумме подмножеств, нужно найти элементы массива сумма которых равно нулю{14,-7,-10,4,3, 5, -19, -12, 9, 6};
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
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <math.h>
#define N 10
int summ(int l, int *a)
{
    int S=0, k;//к-номер варианта, сдвинутый на j позиций вправо, s– сумма необходимых элементов от 0 до j
    for(int j=0;j<N;j++)
    {
        k=l%2;//получить младший бит числа
        S+=a[j]*k;
        l=l/2;//сдвинуть биты на позицию влево
    }
    return S;//возвращение значения s
}
void perebor(int *a)
{
    int i, j, k, b[N], m, l=0;
    for(i=0;i<pow(2,N*1.);i++)
    {
        m=0;
        if(summ(i, a)==0)
        {
            int l=i;
            for(j=0;j<N;j++)
            {
                k=l%2;
                if(k)
                {
                    b[m]=j;
                    m++;
                }
                l/=2;
            }
            for(j=0;j<m;j++)
                printf("%d[%d] ", a[b[j]], b[j]);
            printf("\n");
        }
    }
}
void main()
{
    int a[N]={14,-7,-10,4,3, 5, -19, -12, 9, 6};
    for(int i=0;i<N;i++)
        printf("%d ", a[i]);
    perebor(a);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2009, 14:56     Объясните принцип действия алгоритма!!!
Посмотрите здесь:

Объясните принцип действия программы, меняющей местами строки матрицы с наибольшим и наименьшим элементами - C++
Доброго времени суток. Задание звучит так: В произвольной матрице A поменять местами строку, содержащую минимальный элемент матрицы,...

Объясните принцип - C++
printf(&quot;%.2lf&quot;, x) Объясните пожалуйста понятным языком, что делает эта вещь &quot;%.2lf&quot;?

Принцип действия функции return - C++
Никак не пойму принцип действия функции return. Объясните пожалуйста и если можно то на примере.

LZSS принцип работы алгоритма - C++
Приветствую! Обращаюсь сюда за помощью, так как ни как не могу разобраться с алгоритмом LZSS. После непродолжительных поисков нашел вот...

Объясните принцип создания многопоточности - C++
Здраствуйте, объясните пожалйста как сделать программу многопоточной, у меня есть одна программа, в которой большая нагрузка идет на...

Объясните принцип работы программы - C++
Добрый день ( вечер ). Мне дано было задание: Определить класс, объектами которого являются многоугольники указанного типа. ...

объясните принцип работы цикла : ? - C++
объясните принцип работы цикла : ?

Объясните принцип бинарного поиска - C++
Можно, пожалуйста, пример или принцип бинарного поиска. С++ для очень сильно начинающих.

Объясните, пожалуйста, принцип работы. - C++
Есть прога, считает сумму ряда, но ряд - знакочередующийся (-1,1,-1,...). При подсчете программа заканчивае работу на 1023 члене. Но чем...

Объясните принцип работы программы - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include &lt;conio.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru