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

Рекурсия

01.05.2013, 16:09. Просмотров 433. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2013, 16:09
Ответы с готовыми решениями:

Рекурсия. Рекурсия с мемоизацией
Добрый день. Задача такова: У нас есть массив для длины строки (пусть будет M=20). У нас есть некие...

Рекурсия
Привет, помогите пожалуйста надо вычислить рекурсивную функцию :...

Рекурсия
Помогите с лабой!!! Нужен код Спасибо заранее

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

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

Добавлено через 2 минуты
с помощью f10 и точки останова в функции все равно не могу до конца разобраться - все равно нить логики у меня теряется после попадания в return
что возвращается и что потом вызывается я не могу понять
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
01.05.2013, 18:50 4
Цитата Сообщение от alekopi Посмотреть сообщение
тема Рекурсия.
Суть рекурсии в том, что функция вызывает сама себя, но чтобы эта цепочка не была бесконечной при каких-то условиях функция должна завершаться не вызывая себя (return). В Вашем случае, например, увеличивается аргумент, и при достижении значения 20 как раз наступает конец рекурсии. Однако, если Вашу функцию вызвать с параметром a равным 20 или более, завершения рекурсии не будет (ну только пока стек не переполнится или int).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2013, 18:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Рекурсия
не знаю как это сделать..помогите

Рекурсия
Имитировать выполнение программы по рекурсивной функцией. Привести пример

рекурсия в с++ ( ?: = if() else)
Подскажите, пожалуйста, как сделать с помощью рекурсивной функции? int sum (int *arr, size_t...

Рекурсия
Помогите. Не могу понять в чем проблема. Вот Задание : В каждом варианте задания дана...

Рекурсия
Подскажите пожалуйста, почему когда я ввожу число состоящее из большого количества знаков(например...

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


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

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

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