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

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

Войти
Регистрация
Восстановить пароль
 
Максим2014
5 / 5 / 2
Регистрация: 10.07.2013
Сообщений: 113
#1

Каким образом в переменную записывается результат каждого рекурсивного вызова? - C++

21.02.2014, 05:11. Просмотров 289. Ответов 7
Метки нет (Все метки)

Всем привет! Подскажите по данной задачи, немного недопонимаю:

ФАКТОРИАЛ:
C++
1
2
3
4
5
int FACT(int n)
{int res;
if(n==1) return 1;
res=n*FACT(n-1);
return(res);    }
Почему когда я вместо return 1 пишу return 0 он выводит ноль, а когда 1 - выводит результат?
Каким образом в переменную res записываеться результат каждого рекурсивного вызова?
Как я понимаю он суммируется что-ли? Допустим факториал равен 4, значит res=(4*3)+(4*2)+(4*1);
хотя тут просто присваиваем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 05:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Каким образом в переменную записывается результат каждого рекурсивного вызова? (C++):

Каким образом записать слеш в символьную переменную - C++
дело в том что таким '\' образом не катит компилятор ругается

Просуммировать члены последовательности с использованием рекурсивного вызова - C++
Здравствуйте! Мною была составлена программа, содержащая подпрограмму с рекурсивным вызовом, и находящая решение уравнения...

Не записывается массив в переменную - C++
Не записывается массив в переменную при считывании новой i, то есть была у нас i = 1, и перешла на i = 2, и все значения из DATA...

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

Число не записывается в переменную - C++
int main() {int a,b; cout<<"Enter a "<<endl; cin>>a; while(a/10>1) { b=a-10;} cout<<b<<endl; ...

Результат не записывается в файл - C++
Здравствуйте. Столкнулся с такой проблемой: после выполнения цикла (условия), результат не записывается в файл. int main() { ...

7
castorsky
1956 / 1046 / 78
Регистрация: 29.11.2013
Сообщений: 3,269
21.02.2014, 05:27 #2
возьми ручку и листик. Распиши последовательно что происходит на примере FACT(3), прямо по шагам кода программы. И все поймешь сам.

Добавлено через 14 секунд
умножение на ноль дает ноль.
0
Максим2014
5 / 5 / 2
Регистрация: 10.07.2013
Сообщений: 113
21.02.2014, 05:51  [ТС] #3
Если два return в функции то между ними идет умножение?
0
castorsky
1956 / 1046 / 78
Регистрация: 29.11.2013
Сообщений: 3,269
21.02.2014, 09:02 #4
Код
    f(3)
    if (3 == 1)
        return 1;
    else
        3 * f(2);
        if (2 == 1)
            return 1;
        else
            2 * f(1);
            if (1 == 1)
                return 1;
            * 2;
        * 3;
    == 6;
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
21.02.2014, 16:30 #5
Ты знаешь, что делает инструкция return? Скажи, как ты её понимаешь? Я не уверен, что правильно!
0
Максим2014
5 / 5 / 2
Регистрация: 10.07.2013
Сообщений: 113
21.02.2014, 19:40  [ТС] #6
Всмысле я? Возвращает значение функции в ту функцию которая её вызывает - вроде так!
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
21.02.2014, 19:58 #7
Ну и где тогда может быть суммирование? При чём тут вообще сумма?
0
Максим2014
5 / 5 / 2
Регистрация: 10.07.2013
Сообщений: 113
21.02.2014, 20:26  [ТС] #8
Когда создавал тему просто не знал что это именно так работает!))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 20:26
Привет! Вот еще темы с ответами:

Результат не записывается в файл - C++
#include "studide.h" int main() { ofstream fout("cpp.txt"); setlocale(LC_CTYPE, "rus"); cout << "Введите цифру:\n"; string...

В переменную массива записывается не то значение - C++
Вобщем задача такая : есть массив N чисел из него надо удалить повторяющиеся числа. Я написал такую функцию: void T(int* M,int N){ ...

Не записывается текущая директория в переменную - C++
Отладка почему то не работает. В переменных вместо ожидаемых значения какие то крякозябры. Каждый раз разные. Случайные участки ОЗУ...

НЕ записывается содержимое файла в переменную типа char - C++
Нужно открыть файл, сохранить содержимое текста файла в переменную типа char под названием buffer и вывести переменную buffer на экран. При...


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

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

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