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

Подмножества указанной длины в множестве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Умножение полинома http://www.cyberforum.ru/cpp-beginners/thread40727.html
Написал черновой #include "stdafx.h" #include <iostream> #include <sstream> #include <string> #include <stdlib.h> using namespace std; ////////////////////////////////////////////////////////////////////////// class Polinomial{ private: stringstream polinomial;
C++ Математическое задание в Borland C++ Граждане программисты помогите пожалуйста решить задачку! Вчера весь день просидел, а теперь и сегодня мучаюсь. http://savepic.ru/687473.jpg Там что-то типа этого должно быть: #include <iostream.h> #include <iomanip.h> #include <math.h> main() { http://www.cyberforum.ru/cpp-beginners/thread40712.html
генеалогическое дерево на C++ C++
Помогите пожалуйста с утра сижу использую бинарное дерево.Не получаеться с вводом когда вожу например Bogdan1990 прога разбивает это на отдельные элементы потом переделал выдает ошибку.Вот задание :Разработать программу, формирующую динамическую структуру данных для хранения генеалогического дерева. Каждая вершина дерева должна содержать следующую информацию: имя и год рождения. Помогите кому не...
Логическое задание на С++ C++
Помогите пож-та еще с вот такой задачкой: В написанном выражении ((((1?2)?3)?4)?5)?6 вместо каждого знака ? вставить знак одной из 4 арифметических операций +,-,*,/ так, чтобы результат вычислений равнялся 35 (при делении дробная часть в частном отбрасывается). Достаточно найти одно решение.
C++ с++ списки: создать список вычислить в нем минимум http://www.cyberforum.ru/cpp-beginners/thread40684.html
запускаю #include <stdafx.h> #include "stdio.h" #include "conio.h" #include <iostream> using namespace std; typedef struct node {
C++ Stack overflow. У меня в программе есть реверсивная функция (много параметров) она вызывает себя очень много раз. Во время выполнения программы возникает ошибка Stack overflow. Может кто-то знает, как в компиляторе (Visual Studia 2005 или Dev-C++ ) поставить больший размер стека? Или может функцию лучше разбить на несколько?( Добавлено через 3 минуты 39 секунд Или может функцию лучше разбить на... подробнее

Показать сообщение отдельно
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
17.06.2009, 17:06     Подмножества указанной длины в множестве
вывести на экран все подмножества длиной k, множества n. k<=n

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
47
48
49
50
51
52
53
#include <algorithm>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#include <boost/lambda/algorithm.hpp>
#include <boost/function.hpp>
#include <boost/next_prior.hpp>
#include <iostream>
#include <locale>
 
template <typename T, const size_t N>
inline size_t array_count(const T (&)[N])
{ return (N); }
 
template <typename T>
void print_all_sequences(const T* arr, const size_t N, size_t length)
{
    namespace lm = boost::lambda;
    namespace ll = lm::ll;
    typedef typename std::allocator<T>::const_pointer iterator;
    boost::function<void (iterator, iterator)> f = 
        lm::bind(ll::for_each(), lm::_1, lm::_2,
        lm::protect(std::cout << lm::_1 << lm::constant(" ")));
 
    std::cout << "Все последовательности длиной " << length << ": ";
    iterator curr = &arr[0], next;
    for(; (next = std::adjacent_find(curr, arr+N, lm::_1 != lm::_2)) != arr+N;
        std::advance(curr = next, 1))
    {
        const size_t curr_length = std::distance(curr, next) + 1;
        if (curr_length == length)
            f(curr, boost::next(next)), std::cout << "| ";      
        std::advance(curr = next, 1);
    }
 
    const size_t last_length = std::distance(curr, next);
    if (last_length == length)
        f(curr, next);
    std::cout << std::endl;
}
 
int main()
{
    setlocale(LC_ALL, "");
    int arr[] = {1,1,2,2,3,3,3,4,4,4,4,-1,-2,-2,-3,-3, -4,-4,-4,-4};
    const int N = array_count(arr);
 
    print_all_sequences(arr, N, 1);
    print_all_sequences(arr, N, 2);
    print_all_sequences(arr, N, 3);
    print_all_sequences(arr, N, 4);
 
    return 0;
}
Вывод программы:
Все последовательности длиной 1: -1 |
Все последовательности длиной 2: 1 1 | 2 2 | -2 -2 | -3 -3 |
Все последовательности длиной 3: 3 3 3 |
Все последовательности длиной 4: 4 4 4 4 | -4 -4 -4 -4
 
Текущее время: 19:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru