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

Рекурсия: найти непрерывную часть массива, чтобы сумма элементов была максимальной - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Верхний и нижний регистр http://www.cyberforum.ru/cpp-beginners/thread994162.html
Напишите программу, которая читает клавиатурный ввод до символа @ и повторяет его, за исключением десятичных цифр, преобразуя каждую букву верхнего регистра в букву нижнего регистра и наоборот. #include <iostream> #include <cctype> using namespace std; int main() { char ch; char str;
C++ Вычислить последовательность Не знаю почему, но программа отказывается выдавать что-либо, помогите найти ошибку. /*Для данного вещественного числа x и натурального n вычислить: c) sin x + sin(sin x ) + ... + sin ( sin (... sin(sin x) ... ))*/ #include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> http://www.cyberforum.ru/cpp-beginners/thread994138.html
C++ Найти в одномерном массиве, состоящем из N целых чисел, количество простых элементов
Нужна помощь, буду очень благодарен) Общая постановка задания: Используя динамический массив и функции, найти количество простых чисел. И если можно, то к этому же заданию: преобразовать массив таким образом, чтобы сначала рассполагались все отрицательные числа, а потом - все неотрицательные
C++ Реализация одиночного наследования
Парни, выручайте! а) Создать иерархию классов датчик – абстрактный базовый класс и датчики температуры, влажности и скорости ветра. Для каждого класса определить свои единицы измерения и способ снятия данных о значениях состояния окружающей среды. Определить конструктор копирования, оператор присваивания через соответствующие функции базового класса. Продемонстрировать работу классов. b)...
C++ Найти максимальное и минимальное значение между точками и вывести их вместе с точками http://www.cyberforum.ru/cpp-beginners/thread994098.html
Я уже весь гугл перерыл и всю голову выпотрошил.не получается. Нужно написать функцию для двух массивов х и у. Эти массивы задают координаты точек.Надо найти максимальное и минимальное значение между точками и вывести их вместе с точками. Т.е. в таком примерно виде (Максимальное расстояние между точками А2 и А5 = 12).Фишка в том, что не между соседними точками, а между всеми. Вобщем не...
C++ Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в динамической области памяти. * Конструктор для их создания (операция new) и установки их начальных значений: Х(); * деструктор: ~Х(); * friend – функция печати: friend void print(); * функция, решающая поставленную задачу: friend Void Run(). подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
01.11.2013, 13:40     Рекурсия: найти непрерывную часть массива, чтобы сумма элементов была максимальной
Вот мой вариант решения задачи. Алгоритм - получение методом перебора всех под-последовательностей элементов с каждой позиции в массиве. Далее вычисление суммы элементов каждой из под-последовательностей, далее нахождение наибольшей суммы.
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 10
 
int main(int argc, char* argv[])
{
    int A[N] = { 0 };
    for (int i = 0; i < N; i++)
    {
        A[i] = rand() % 2000 - 1000;
        printf("%d ",A[i]);
    }
 
    printf("\n\n");
 
    int max = 0, pos = 0, len = 0;
    for (int t = 0; t < N; t++)
    {
        int cnt = 0;
        while (cnt < N)
        {
            int k = t, sum = 0;
            while (k <= cnt) sum+=A[k++];
            if (sum > max) { max = sum; pos = t; len = cnt-pos+1; }
 
            cnt++;
        }
    }
 
    printf("sum = %d pos = %d len = %d\n",max,pos,len);
 
    _getch();
}
http://codepad.org/MKOuhrDx
Миниатюры
Рекурсия: найти непрерывную часть массива, чтобы сумма элементов была максимальной  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru