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

Найти непрерывный участок из 10 элементов, сумма которых максимальна - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать объект в новой куче? http://www.cyberforum.ru/cpp-beginners/thread766167.html
VisualStudio 2012, Win7x64Prof. Пробую выделить память в куче, а потом с помощью формы "Placement new" разместить в ней объект. class MyClass { public: int x; MyClass()
C++ Дано целое число и найти его сумму Дано целое число N(>0).Hайти сумму N*2+(N+1)*2+(N+2)*2+...+(N*2)*2 Небольшая заготовка #include <vcl.h> #include <conio.h> #include <iostream.h> int main() { int N; http://www.cyberforum.ru/cpp-beginners/thread766153.html
C++ вывести на печать случайный массив или матрицу
как вывести на печать случайный массив или матрицу на Visual Studio? тоесть как сгенерировать массив/матрицу?
Массив символов char и указатели C++
В общем нужно сохранить путь к диску в переменную, что бы потом использовать в _findfirst Но сколько бы я не бился над этим, ничего не выходит... Это криво код, не работает... #include <io.h>...
C++ Определить инвариант в цикле http://www.cyberforum.ru/cpp-beginners/thread766133.html
Программа проверяет является ли число простым. Подскажите как составить инвариант для этой программы. Не понимаю как это делается вообще. #include <stdio.h> #include <math.h> int main( ) { ...
C++ Error C2912: явная специализация не является специализацией функции-шаблона Как исправить ошибку? #include <iostream> using namespace std; template <typename t> void PrintArray(t *arr, const int size) { for (int i=0; i<=size-1; i++) cout << arr << " "; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.01.2013, 19:09
Цитата Сообщение от AlexeySlavin Посмотреть сообщение
объясните как Вы это сделали?
см комментарии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int s=0, tmp=0, i_max=0, i, j;// i_max=0 - считаем что наибольшая сумма начинается с элемента с индексом 0
for(i=0; i<10; i++)// суммируем первые 10 элементов
    s+=a[i];// по окончании этого цикла в переменной s сумма первых 10 элементов (считаем пока ее наибольшей возможной суммой)
tmp=s;// в переменную tmp записываем значение суммы первых 10 элементов
for(i=1; i<191; i++)
{
    tmp+=a[i+9]-a[i-1];// для нахождения очередной суммы отнимаем левый элемент (относительно очередной 10-ки элементов) и прибавляем правый элемент
    if(tmp>s)// если очередная сумма больше значения записанного в s
    {
        s=tmp;// меняем значение в переменной s
        i_max=i;// записываем новый индекс в переменную i_max
    }
}
cout<<"Res:"<<endl;
for(i=0; i<10; i++)// выводим 10 элементов с максимальной суммой
    cout<<a[i_max+i]<<" ";
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru