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

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

Войти
Регистрация
Восстановить пароль
 
alekopi
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 8
#1

Рекурсия - C++

01.05.2013, 16:09. Просмотров 327. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
void gg(int a,int b)
{   int i=0;
    if(a==20) 
    return;
    printf("%d\n",a);
    printf("%d\n",b);
    gg(a+1,b-1);
    gg(a+1,b);
}
void main()
{
    gg(16,10);
 
}
Объясните пожалуйста что делает return ,когда if true что куда возвращается и что потом вызывается - я запутался
до return все понятно - рекурсивный вызов gg(a+1,b-1); до тех пор пока a!=20
т.е. передаем функции gg: 16 и 10 - консоль выводит 17 и 9 ; 18 и 8; 19 и 7 а ДАЛЬШЕ что консоль выводит и почему столько много чисел я не понял
объясните пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2013, 16:09     Рекурсия
Посмотрите здесь:

Рекурсия - C++
Помогите написать функцию которая будет считать эту рекуррентную формулу с помощью рекурсии

рекурсия - C++
здравствуйте! я начал изучать с++... дошел до функций (а именно рекурсии)... я понял, что рекурсия-это функция, которая сама себя...

Рекурсия!!!! - C++
Доброго времени суток!!! В С++ полный нуб.... маюсь не первый день с такой задачкой: Напишите рекурсивную подпрограмму вычисления...

рекурсия - C++
Доброго времени суток. Уважаемые ГУРУ, есть одна проблема. Ниже представлен код, в котором параметр b должен быть всегда...

рекурсия - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; void someFunction ( int , int, int ); int main () { ...

рекурсия - C++
Сделать рекурсию, кроме факториала!

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.05.2013, 16:18     Рекурсия #2
alekopi, функция gg выводит свои аргументы a,b, если a не равно 20. Потом вызывает себя дважды с измененными аргументами.
Вопрос не в том, что выводит, вопрос что должно выводить. Задание есть, или откуда код?
На тему return: это просто выход из функции, когда a равно 20.
alekopi
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 8
01.05.2013, 17:35  [ТС]     Рекурсия #3
код сам написал
в кернигане есть код быстрой сортировки(Ч.А.Р. Хоар) и я не могу его разобрать что там и как в нем происходит
тема Рекурсия.
там вызов функции в ней двойной вызов этой же функции и еще в if есть return
и я попробовал написать похожий код только попроще...все равно не понял что мне компилятор выводит после того как в return попал.

Добавлено через 2 минуты
с помощью f10 и точки останова в функции все равно не могу до конца разобраться - все равно нить логики у меня теряется после попадания в return
что возвращается и что потом вызывается я не могу понять
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2013, 18:50     Рекурсия
Еще ссылки по теме:

Рекурсия - C++
Не понимаю каков будет порядок действий в функции допустим когда(level =2). По тому как я понял работает рекурсия, когда начнется алгоритм...

Рекурсия - C++
Помогите написать рекурсию. Задание прилагаю

Рекурсия - C++
Сделайте одну програмку используя рекурсию. Очень нужно... Срочно. 1. Реализовать поиск НОД; 2. Возвести число в целую степень; ...

Рекурсия - C++
Приветствую. Прошу помощи. Нужно посчитать Xn по формуле: С рекурсией плохо дружу. Заранее благодарен.


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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.05.2013, 18:50     Рекурсия #4
Цитата Сообщение от alekopi Посмотреть сообщение
тема Рекурсия.
Суть рекурсии в том, что функция вызывает сама себя, но чтобы эта цепочка не была бесконечной при каких-то условиях функция должна завершаться не вызывая себя (return). В Вашем случае, например, увеличивается аргумент, и при достижении значения 20 как раз наступает конец рекурсии. Однако, если Вашу функцию вызвать с параметром a равным 20 или более, завершения рекурсии не будет (ну только пока стек не переполнится или int).
Yandex
Объявления
01.05.2013, 18:50     Рекурсия
Ответ Создать тему
Опции темы

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