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

Найти максимальную цепочку нулей и едениц. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ динамический массив (помогите разобраться с условием и решением программы) http://www.cyberforum.ru/cpp-beginners/thread36335.html
Доброе время суток, уважаемые программисты!)) Помогите разобраться со страной трактовкой задания. Вот задание: A<B<(C & A]) M-возвращает номер столбца матрицы с суммой элементов, большей К....
C++ Построение бинарного дерева из двумерного массива Стыдно, если честно, об этом просить, но "возник стопор" и путных идей не приходит. Суть задачи: Есть массив n*n состоящий из целых чисел. Надо создать бинарное дерево по следующему принципу:... http://www.cyberforum.ru/cpp-beginners/thread36331.html
Вычисление в одномерном массиве C++
Доброе время суток! Помогите плиз с этим делом В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)максимальный по модулю элемент массива 2)сумму элементов...
C++ Построения графика на С
Помогите очень нужно создать прогу yf C построения графика функции.Чтоб вводить любую ф-цию и строился ее график.Типа елементарние sin,cos,квадратична и т.п. Добавлено через 2 часа 49 минут 26...
C++ Люди помогите с Оборотной матрицей http://www.cyberforum.ru/cpp-beginners/thread36315.html
Вот написал , а не пашет. #include<stdio.h> #include<math.h> #include<conio.h> float a,x,e,c,d; int i,j,k,n,h; main() { m2: Printf("\n vvedit n \n"); scanf("\n %d",&n);
C++ Задача на файловые функции Собственно задача вот в чем: Дан файл вещественных чисел с именем Name1. Создать два новых файла с именами Name2 и Name3, первый из которых будет содержатьэлементы исходного файла с четными... подробнее

Показать сообщение отдельно
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
26.05.2009, 01:08
karinok,
Хм, задачка показалась интересной, вот подумал чутка...

Функция ищет всё под-последовательности из одинаковых элементов и выводит их на печать:

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
#include <algorithm>
#include <functional>
#include <boost/lambda/lambda.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)
{
    namespace lm = boost::lambda;
    typedef typename std::allocator<T>::const_pointer iterator;
 
    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; // +1 = учитываем первоначальный элемент в последовательности
        std::cout << "Найдена последовательность из элементов " << 
            *curr << " в количестве " << curr_length << " шт." << std::endl;
        std::advance(curr = next, 1);
    }
 
    // считаем количество элементов в самой последней последовательности
    const size_t last_length = std::distance(curr, next);
    std::cout << "Найдена последовательность из элементов " << 
        *curr << " в количестве " << last_length << " шт." << std::endl;
}
 
int main()
{
    setlocale(LC_ALL, ".1251");
    char arr[] = "11000110100001111100";
    const size_t N = array_count(arr);
    print_all_sequences(arr, N);
 
    return (0);
}
Делал больше для себя, так что использовал те средства, которые посчитал нужным.

Вывод программы:

Найдена последовательность из элементов 1 в количестве 2 шт.
Найдена последовательность из элементов 0 в количестве 3 шт.
Найдена последовательность из элементов 1 в количестве 2 шт.
Найдена последовательность из элементов 0 в количестве 1 шт.
Найдена последовательность из элементов 1 в количестве 1 шт.
Найдена последовательность из элементов 0 в количестве 4 шт.
Найдена последовательность из элементов 1 в количестве 5 шт.
Найдена последовательность из элементов 0 в количестве 2 шт.
Найдена последовательность из элементов в количестве 1 шт.
(последняя строчка - это оно посчитало символ терминатор, который всегда присутствует в конце строки)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru