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

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

Восстановить пароль Регистрация
 
ARTLINE-NN
 Аватар для ARTLINE-NN
1 / 1 / 0
Регистрация: 30.03.2012
Сообщений: 82
31.05.2012, 00:55     Рекурсивная функция #1
Расскажите пожалуйста про рекурсивную функцию, как она задаётся и всё что с ней связанно. (можно с примерами) от меня +Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 00:55     Рекурсивная функция
Посмотрите здесь:

Рекурсивная функция. C++
C++ Рекурсивная функция[]
Рекурсивная функция C++
Рекурсивная функция C++
C++ Рекурсивная функция
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
31.05.2012, 12:31     Рекурсивная функция #2
Рекурсивная функция - это функция, которая, при выполнении, вызывает саму себя, и ее выполнение начанается заново, при этом, при каждом вызове, переменные, с которыми работает функция, принимают новые значения, т.е все вычисления выполняются повторно для новых значений переменных.
Пример использования вызова рекурсивной функции для перебора элементов массива и нахождения их суммы:
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
#include <stdio.h>
#include <conio.h>
 
#define N 5
 
int sum = 0;
 
int getsum(int* X, int i, int n);
 
int main()
{
    int X[N] = { 3, 5, 7, 2, 9 };
    printf("sum = %d\n",getsum(X,0,N));
 
    _getch();
 
    return 0;
}
 
int getsum(int* X, int i, int n)
{
    if (i >= n) return sum;
    printf("%d ",X[i]);
    sum+=X[i];
    getsum(X, ++i, n); // Функция вызывает саму себя с новым значением i+1
}
http://liveworkspace.org/code/c1e0ae...bc97bd5f3ad4cc
Borkot
 Аватар для Borkot
4 / 4 / 0
Регистрация: 05.05.2012
Сообщений: 182
Записей в блоге: 1
31.05.2012, 13:25     Рекурсивная функция #3
Всем доброе время суток.В книгах сказано, что мы можем заменить рекурсию итеративно.
Но также там сказано, что иногда рекурсию выглядит более красиво чем итерации.
Может кто то привести примерчик в каких случаях это действительно так.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
31.05.2012, 13:54     Рекурсивная функция #4
http://ru.wikipedia.org/wiki/%D0%91%...B2%D0%BA%D0%B0
Найти произведение отрицательных элементов массива, используя рекурсию
Catstail
Модератор
 Аватар для Catstail
21430 / 10215 / 1664
Регистрация: 12.02.2012
Сообщений: 17,086
31.05.2012, 14:42     Рекурсивная функция #5
Рекурсия выглядит явно красивее итерации, например, при поиске элемента в двоичном дереве.
Как это сделать без рекурсии - еще придется голову поломать.
Yandex
Объявления
31.05.2012, 14:42     Рекурсивная функция
Ответ Создать тему
Опции темы

Текущее время: 13:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru