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

Массив: Найти такую неразрывную последовательность положительных чисел, сумма элементов у которой максимальная. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++11 новые классы стандартной библиотеки http://www.cyberforum.ru/cpp-beginners/thread834844.html
Здравствуйте. Программирую в eclipse на С++, использую С++11. Код в новом стандарте компилируется, однако мне нужен новый класс initializer_list (+ ещё другие новые классы). Посмотрел, что сам заголовочный файл есть в системе. Директива include его находит. Однако std::initializer_list не воспринимает, пишет что-то вроде "нет такого элемента в пространстве имён". Кроме этого, не видит конструктор...
C++ Инлайн-функция замедляет работу Здравствуйте! видимо что-то делаю неправильно...имею код. Запускаю скомпилированную программу - работает с одной скоростью. Копипастю код в инлайн функцию - скорость выполнения резко уменьшается. если кому интересно - вот начальный код // Task3.cpp: определяет точку входа для консольного приложения. // #include <stdlib.h> #include <math.h> #include <sys/time.h> #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread834841.html
Даны шесть различных чисел. Определить максимальное из них C++
Даны шесть различных чисел. Определить максимальное из них. (Определить функцию, находящую максимум из двух различных чисел.) Еще одна подобная тема, и последуют санкции.
Выяснить является ли хоть одно из данных чисел палиндромом(перевёртышем) C++
Даны 2 натуральных числа выяснить является ли хоть одно из них палиндромом(перевёртышем) тоесть таким числом десятичная запись которого читается одинаково слева на право и справо на лево.(определить функции позволяющие распозновать числа палиндромы)
C++ Лучшие ресурсы в Интернет - разработчикам C++ http://www.cyberforum.ru/cpp-beginners/thread834824.html
Все источники широко известны - но тем не менее: http://strongcpp.blogspot.ru/2013/04/c.html
C++ Получить все шестизначные счастливые номера Получить все шестизначные счастливые номера. Счастливым называют такое шестизначное число, в котором сумма ею первых трех цифр равна сумме его последних трех цифр. (Определить функцию для расчета суммы цифр трехзначного числа. Перечитайте правила форума. Тема должна быть создана в соответствующем разделе. Название темы должно быть информативным. подробнее

Показать сообщение отдельно
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
11.04.2013, 17:08     Массив: Найти такую неразрывную последовательность положительных чисел, сумма элементов у которой максимальная.
myxayan, ща посмотрю)

Добавлено через 14 минут
myxayan, вот посмотри, вдруг что-то не так, скажи)

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <iomanip>
#include <array>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <functional>
using namespace std;
 
bool pred(int elem){
    return elem > 0;
}
 
int main()
{
    array<int, 10> coll;
 
    cout << "Enter the array: ";
    for(int i = 0; i < 10; ++i)
        cin >> coll[i];
 
    cout << "\nSource array: " << setw(15 - strlen("Source array"));
    copy(coll.begin(), coll.end(), ostream_iterator<int>(cout, " "));
 
    int max, num;
    array<int, 10>::iterator pos1, pos2, pos3, pos4,
        it = coll.begin();
 
    pos1 = find_if(coll.begin(), coll.end(), pred);
 
    if(pos1 != coll.end()){
        pos2 = find_if(pos1 + 1, coll.end(), not1(ptr_fun(pred)));
 
        pos3 = pos2;
        max = accumulate(pos1, pos2, 0);
 
        while(it != coll.end()){
            pos3 = find_if(pos3, coll.end(), pred);
 
            if(pos3 != coll.end()){
                pos4 = find_if(pos3 + 1, coll.end(), not1(ptr_fun(pred)));
 
                num = accumulate(pos3, pos4, 0);
 
                if(max < num){
                    max = num;
                    pos1 = pos3;
                    pos2 = pos4;
                }
                
                if(pos4 != coll.end()){
                    it = pos4; 
                    ++it;
                    pos3 = it;
                }
                else
                    break;
            }
            else
                break;
        }
 
        if(pos2 != coll.end()){
            cout << "\nNumber of elements: ";
            copy(pos1, pos2, ostream_iterator<int>(cout, " "));
        }
    }
 
    cout << "\n\n";
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru