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

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

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

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

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

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

Рекурсивная функция - C++
Вычислить элементы ряда с помощью рекурсивной функции. Порядок вычисления элементов ряда: a(1)=1, a(n)=5*(2n-1)n-a(n-1), n>0 ...

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

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

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

Рекурсивная функция - C++
ПРивет всем! ребят помогите решать вот такую задачку: Используя команды write(x) лишь при х=0,1,…9 написать рекурсивную процедуру вывода...

Рекурсивная функция - C++
Скласти програму з використанням рекурсивної функції, в якій обчислити суму 12 членів рекурентної послідовності : X0=1;X1=1;Xk=0,7Xk-1+...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;
}
0
Thinker
Эксперт C++
4226 / 2200 / 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)
2
serejkus
47 / 45 / 4
Регистрация: 31.10.2011
Сообщений: 98
19.09.2012, 00:31 #4
Зато версия bgm313 с большей вероятностью будет подвергнута tail-recursion оптимизации (особенно, если не создавать result).
0
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;
  }
}
гарантированно заоптимизирован ^^
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2012, 02:13
Привет! Вот еще темы с ответами:

Рекурсивная функция - C++
Нужно написать рекурсивную функцию вычисления \prod |{a}_{i}| где {a}_{i} целочисленный массив {a}_{i} -четное {a}_{i}&lt;0 ...

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

рекурсивная функция - C++
Всем привет! Нужна помощь с программкой. Можете пожалуйста обьяснить, с чего начинать? Дана последовательность из ста целых чисел....

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.09.2012, 02:13
Ответ Создать тему
Опции темы

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