Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
alekopi
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 8
1

Рекурсия

01.05.2013, 16:09. Просмотров 363. Ответов 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 а ДАЛЬШЕ что консоль выводит и почему столько много чисел я не понял
объясните пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2013, 16:09
Ответы с готовыми решениями:

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

Рекурсия
Как переделать программу в рекурсию? char S='S', T='T', M={NULL}; int...

Рекурсия
Разработать рекурсивную функцию не возврашающую значений: Дано натуральное...

РЕкурсия
Мне нужно 5 задач по рекурсии с решениями,)))есмли не сложно-помогите, может...

Рекурсия
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iostream&gt;...

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

Добавлено через 2 минуты
с помощью f10 и точки останова в функции все равно не могу до конца разобраться - все равно нить логики у меня теряется после попадания в return
что возвращается и что потом вызывается я не могу понять
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.05.2013, 18:50 4
Цитата Сообщение от alekopi Посмотреть сообщение
тема Рекурсия.
Суть рекурсии в том, что функция вызывает сама себя, но чтобы эта цепочка не была бесконечной при каких-то условиях функция должна завершаться не вызывая себя (return). В Вашем случае, например, увеличивается аргумент, и при достижении значения 20 как раз наступает конец рекурсии. Однако, если Вашу функцию вызвать с параметром a равным 20 или более, завершения рекурсии не будет (ну только пока стек не переполнится или int).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2013, 18:50

Рекурсия
на картинке файлик из википедии в которой говорится что рекусия имеет вид...

рекурсия B c++
пожалуйста помогите,почему не работает? дело в рекурсии,функция func1...

рекурсия
Помогите,пожалуйста, изменить рекурсивную ф-цию.сразу прошу не пугаться размера...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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