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

Перебор неповторяющихся сочетаний - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удалить слово слева от курсора. http://www.cyberforum.ru/cpp-beginners/thread568426.html
case 107:{ /*Ctrl-Del*/ i=xk+xt; m=0; while((*(rs+i)==' ')|(*(rs+i)=='\n')|(*(rs+i)=='\0'))i++; while((*(rs+i)!=' ')&&(*(rs+i)!='\n')&&(*(rs+i)!='\0')&&(i<100)) i++, m++; if ((m==0)&(xk==1)) /*если строка пуста, то поднимаем вверх */ { for(d=1;d<100;d++) {for (i=0;i<100;i++) *(rs+i)=*(rs+i);}
C++ Рисование ломанной линии и фиксирование её клавишей Есть такая задачка: Рисуется ломаная линия. Фиксирование первых и очередных узлов осуществляется нажатием клавиши ''Enter'', фиксирование последнего узла двойным нажатием клавиши ''Enter''. Для удаления всей ломаной линии необходимо нажать клавишу "Esc". Пробую на паскале уже неделю сделать, не получается. Добавлено через 2 часа 31 минуту проблема в фиксировании Добавлено через 6... http://www.cyberforum.ru/cpp-beginners/thread568400.html
C++ Структура - спортсмен-многоборец
10 спортсменов многоборцев принимают участие в соревнования по пяти видам спорта.по каждому виду спорта спортсмен набирает определенное количество очков.спортсмену присваивается звание мастера,если он набрал в сумме не менее k очков.сколько спортсменов получило звание мастера Добавлено через 1 минуту помогите с решением на с++...дело в том,что новичок...не всё так гладко получается:cry:
Перевернуть hex C++
как перевернуть число? чтобы 0xA5 стало 0х5А
C++ Сдвиг столбцов влево циклически - матрица http://www.cyberforum.ru/cpp-beginners/thread568369.html
Приветствую. Хотелбы узнать как реализовать такое что бы, найдя максимальный элемент в матрице, сдвинуть столбец с максимальным элементом на место первого столбца, ну и естественно остальные остолбцы сдвинуть циклически влево. Вот мой код но пока успеха мало((( cout << ("Введите колличество строк - n и столбцов - m: \n"); cout <<("Строки - "); cin >> n; cout << ("Столбцы - "); cin >> m;...
C++ как правильно юзать str() // stringstream::str #include <iostream> #include <sstream> #include <string> using namespace std; int main () { stringstream oss; string mystr; подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,901
Завершенные тесты: 1
08.05.2012, 17:09     Перебор неповторяющихся сочетаний
Цитата Сообщение от David Villa Посмотреть сообщение
А на счет рекурсивной функции нельзя ли чуть подробней?
Можно... Принцип действия простой: функция вызывает сама себя два раза, каждый раз передавая массив без первого элемента. При этом сначала текущий первый элемент в набор не включается, а во второй - включается. Вот только на каждом вызове придётся "тащить" ещё и все предыдущее состояние, чтобы каждый раз печатать полный набор значений, что несколько более громоздко:
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
using std::vector;
using std::cout;
using std::endl;
 
void PrintVector(const vector<int> &v)
{
    for_each(v.begin(), v.end(), [] (int val) {cout << val << ' ';});  // это C++11, по-старому можно записать как for(size_t i=0; i<v.size(); ++i) cout << v[i] << ' ';
    cout << endl;
}
 
void PrintAllCombinations(const int array[], size_t N, vector<int> &v)
{
    if(N==0)
    {
        PrintVector();
        return;
    }
    PrintAllCombinations(array+1, N-1, v);
    v.push_back(array[0]);
    PrintAllCombinations(array+1, N-1, v);
    v.pop_back();
}
 
void foo()
{
    const int N = 7;
    const int a[N] = {1, 2, 3, 4, 5, 6, 7};
    vector<int> tmp;
    tmp.reserve(N);
    PrintAllCombinations(a, N, tmp);
}
 
Текущее время: 12:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru