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

скважины - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ По одному слову поочередно из каждой строки записать в третью http://www.cyberforum.ru/cpp-beginners/thread205498.html
Доброе время суток. Помогите плиз, ибо я начинающий программист. Даны два предложения char st1,st2, любого содержания, мне надо составить программу так, чтобы по одному слову поочередно из каждой...
C++ Сумма элементов массива Вычислить сумму минимального и максимального элементов массива. Размер массива = 18. Тип данных = действительный. Спасибо. http://www.cyberforum.ru/cpp-beginners/thread205494.html
вычисление среднего геометрического положительных элементов массива C++
Привет всем помогите кому не сложно Составить программу вычисления среднего геометрического положительных элементов массива из 100 элементов, заданного как константа.
C++ карманая сортировка
нужна программа на такую тему "карманая сортировка с неповторяющимися ключами с использованием дополнительных масивов и без них"
C++ Предприниматели http://www.cyberforum.ru/cpp-beginners/thread205470.html
Есть N (1<=N<=100) граждан – субъектов предпринимательской деятельности. Каждый из них имеет на счету сумму денег, возможно и отрицательную (долги!). Каждый из них имеет возможность провести одну...
C++ Иерархия классов, военные Привет)))есть такое задание: задано семейство объектов, имеющих некоторую схожесть (общие признаки). Необходимо выделить наиболее общие черты объектов, на основе которых составить базовый класс. На... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.12.2010, 19:20
Попробуйте так. N натуральных чисел считываем в массив arr[]. Глобально объявляем int SUM=0;
нужно будет написать рек. функцию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void rec(int l, int r, int sum)// в параметрах передается левая и правая граница массива и текущее значение суммы.
{
    if(l+1==r)
    {        
          if(sum>SUM) SUM=sum; return;
    }
    if((r-l)%2==0)
    {  
         rec(l, l+(r-l)/2, sum+arr[l+(r-l)/2]);
         rec(l+(r-l)/2, r, sum+arr[l+(r-l)/2]);
    }
    else
    {
         rec(l, l+(r-l)/2, sum+arr[l+(r-l)/2]);         
         rec(l, l+(r-l)/2+1, sum+arr[l+(r-l)/2+1]);   
         rec(l+(r-l)/2, r, sum+arr[l+(r-l)/2]);         
         rec(l+(r-l)/2+1, r, sum+arr[l+(r-l)/2+1]);   
    }
}
и вызвать ее с начальными параметрами:
rec(-1, n, 0);
Результат будет в SUM.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru