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

Комбинаторика на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считывание данных из текстового файла и их запись в структурированный файл, сортировка данных в двоичном файле http://www.cyberforum.ru/cpp-beginners/thread845585.html
Файлы: В текстовом файле находится информация о рейсах самолетов (электронное расписа-ние рейсов). Каждая запись в расписании имеет следующий вид: номер рейса, день недели, время вылета, название пункта отправления, название пункта назначения и тип самолета. Необходимо выполнить: • считывание данных из текстового файла и их запись в структурированный файл (двоичный файл, содержащий структуры);...
C++ шаблон класса вектор В общем говоря нужно описать методы вектора и перегрузки операций. Во всех контейнерах для итераторов реализованы операции: =, ==, !=, *, ++. Вот что я сделал: template<class T> class vector { T * v; int ind, size; public: typedef T* iterator; http://www.cyberforum.ru/cpp-beginners/thread845581.html
Написать функцию чтения почтового сообщения с отдельным выводом заголовка, отправителя, получателя и самого письма C++
Номер письма вводится параметром функции.
Массивы. Вычислить: длину максимальной последовательности, количество элементов массива, сумму индексов C++
Помогите пожалуйста!!! заранее спасибо! В одномерном массиве, состоящем из целых элементов, вычислить: А) длину максимальной последовательности равных по значению элементов. Б) количество элементов массива, являющихся k-той степенью двойки (k=1,2,3,4,5). В) Найти сумму индексов отрицательных элементов.
C++ Создать массив , заполнить его случайными числами и найти в какой строке и каком столбце находится максимальный элемент http://www.cyberforum.ru/cpp-beginners/thread845538.html
Массив состоящий из N строк и M столбцов заполняется случайными числами от 0 до 100. Определить в какой строке и в каком столбце распологается максимальный элемент массива. Числа M и N вводятся с клавиатуры.
C++ Изучение метода блочной записи и чтения из файла изучение метода блочной записи и чтения из файла Некоторый завод выпускает N различных видов измерительных приборов, каждые из которых может быть охарактеризован одним из признаков: наименование прибора, стоимость, источник питания(напряжение, сила тока, частота), заказчик(заказчик1(название адрес).....заказчик к(название адрес)), Наконец, заказчик может сделать заказ на некоторое количество... подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
22.04.2013, 21:45     Комбинаторика на С++
Цитата Сообщение от gorus95 Посмотреть сообщение
если например k = 3 тогда 123, 124, 234
вообще то будет
123
124
134
234

вот мой код. хреновый, конечно, но для понимания подойдет. принцип как написал Buckstabue
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
#include <iostream>
#include <vector>
#include <algorithm>
 
using namespace std;
 
bool increase(vector<int> &vec, const int n)
{
    for (vector<int>::reverse_iterator it = vec.rbegin(); it != vec.rend(); it++)
        if (*it + 1 <= n && find(vec.begin(), vec.end(), *it + 1)==vec.end()  ) {
            ++*it;
            return true;
        }
    return false;
}
 
void print(const vector<int> &vec)
{
    for (size_t i = 0; i != vec.size(); i++)
        cout << vec[i] << " ";
    cout << endl;
}
 
int main()
{
    setlocale(LC_CTYPE, "");
    // сочетания из n по k без повторений
    int n = 5;
    int k = 3;
    vector<int> vec(k);
    for (size_t i = 0; i != n; i++)
        vec[i] = i + 1;
    print(vec);
 
    while (increase(vec, n) )
        print(vec);
 
    return 0;
}
 
Текущее время: 03:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru