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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ZooMiGs
Сообщений: n/a
#1

Рекурсивная функция С++ - C++

18.09.2012, 19:30. Просмотров 788. Ответов 4
Метки нет (Все метки)

Написать рекурсивную функцию (+ саму программу), которая подсчитывает сумму элементов одномерного массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2012, 19:30     Рекурсивная функция С++
Посмотрите здесь:

Рекурсивная функция - C++
Помогите сделать вот такое задание

Рекурсивная функция - C++
Здравствуйте, появилась проблемма с написание программы которая использует рекурсивную функцию. Задание: Вот неочень удачная наброска...

Рекурсивная функция - C++
Задание: Составить программу для счисления сумы К членов строки, где К определяется ||Uk| -|Um||< е и е - наперед задана точность...

Рекурсивная функция - C++
Помогите, нужна задача, звучит так: Напечатать в обратном порядке последовательность чисел, признаком конца которой является 0. ...

Рекурсивная функция - C++
Написать на языке С рекурсивную функцию вычисляющую количество полных расстановок скобок в произведении n чисел

Рекурсивная функция. - C++
Доброго времени суток. Мне необходимо написать рекурсивную функцию для решения задачи: Помогите пожалуйста придумать алгоритм, никак...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
18.09.2012, 20:53     Рекурсивная функция С++ #2
Вот тебе функция. С остальным справишься сам)

C++
1
2
3
4
5
6
7
8
int sumArray(int nums[], int sizeArray){
    int result = 0;
    
    if(!sizeArray) return result;
    
    result = nums[sizeArray - 1] + sumArray(nums, sizeArray - 1);
    return result;
}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
18.09.2012, 21:07     Рекурсивная функция С++ #3
Почему бы не в одну строчку
C++
1
2
3
4
5
6
7
int Sum(int *a, int *end)
{
   return a < end ? *a + Sum (a + 1, end) : 0;
}
 
...
Sum(a, a + n)
serejkus
47 / 45 / 4
Регистрация: 31.10.2011
Сообщений: 98
19.09.2012, 00:31     Рекурсивная функция С++ #4
Зато версия bgm313 с большей вероятностью будет подвергнута tail-recursion оптимизации (особенно, если не создавать result).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2012, 02:13     Рекурсивная функция С++
Еще ссылки по теме:

Рекурсивная функция - C++
С клавиатуры вводится массив из 20 элементов. Заменить все отрицательные элементы суммой чётных! int x,h; void input(int i){ ...

Рекурсивная функция! - C++
Разработать рекурсивную функцию, возвращающую значение , для вычисления n-го члена последовательности b1 =5, bn+1=bn/(n2+n+1). Не знаю...

Рекурсивная функция - C++
Составить прогруамму для вычисления , где , для вычисления n!!, использовать рекурсивную типизированную функцию.

Рекурсивная функция - C++
...помогите пожалуйста сделать задачки... http://cs4734.vkontakte.ru/u26212689/96588963/x_20024bb4.jpg ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
19.09.2012, 02:13     Рекурсивная функция С++ #5
Цитата Сообщение от serejkus Посмотреть сообщение
Зато версия bgm313 с большей вероятностью будет подвергнута tail-recursion оптимизации (особенно, если не создавать result).
У этой версии вероятность не хуже:
C++
1
2
3
4
5
6
7
8
9
int Sum(int *a, int *end, int result = 0)
{
  if (a >= end) {
    return result;
  }
  else {
    return Sum(a + 1, end, result + *a);
  }
}
Кликните здесь для просмотра всего текста
А вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int Sum(int *a, int *end)
{
  int result = 0;
past:
  if (a >= end) {
    return result;
  }
  else {
    result += *a;
    a += 1;
    goto past;
  }
}
гарантированно заоптимизирован ^^
Yandex
Объявления
19.09.2012, 02:13     Рекурсивная функция С++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru