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

Обьясните рекурсию на пальцах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятка с постфиксами в VS 2013 http://www.cyberforum.ru/cpp-beginners/thread1755195.html
#include <iostream> using namespace std; int main() { int a = 10; a = a++ + a++; cout << a << endl; system("pause"); return 0;
C++ Что означают константы 0x01, 0x02, 0x03, 0x04 и т.д. unsigned char key = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; что значат 0x01, 0x02, 0x03, 0x04.... http://www.cyberforum.ru/cpp-beginners/thread1755188.html
C++ If, Else как работает?
Почему выполняется условие else? #include <iostream> using namespace std; int main() { int firstNumber, secondNumber; cout<<"Please enter a big number:\n"; cin>>firstNumber; cout<<"Please enter a smaller number:\n";
Программа для вывода всех слов заданного текста в алфавитном порядке C++
Господа , нужна ваша помощь .. Составить программу для вывода всех слов заданного текста в алфавитном порядке Если не затруднит написать дополнительно объяснения кода , буду признателен
C++ Площадь треугольника http://www.cyberforum.ru/cpp-beginners/thread1755157.html
Нужно вычислить площадь n-треугольников по координатам вершин и найти максимальную из них.Вычислить вроде получается,а вот с выделение максимума возникли проблемы. bool check2(double a, double b, double c) { bool positive = (a > 0) && (b > 0) && (c >0); if (positive) { bool abc = (a + b) > c; bool bca = (b + c) > a; bool acb = (a + c) > b; return abc...
C++ Функциональные адаптеры Для произвольного целочисленного массива данных написать функцию которая уменьшает все элементы в 2 раза с использованием функциональных объектов и адаптеров. #include <iostream> #include <algorithm> using namespace std; template<class Operation, class T> binder2nd <Operation> bind2nd (const Operation& op, const T& x) { return binder2nd<Operation>( подробнее

Показать сообщение отдельно
Владимир848484
0 / 0 / 0
Регистрация: 18.05.2016
Сообщений: 5
05.06.2016, 15:53     Обьясните рекурсию на пальцах
Привет всем!
Классическая задача на рекурсию с факториалом.
#include <conio.h>

long int factorial(long int n)
{
if (n == 0 || n == 1) return 1;
return n * factorial(n - 1);
}
Допустим n равно 7.Понятно что функция будет рекурсивно себя вызывать уменьшая за каждый вызов n на 1.Доходим до вызова с числом n равным 1. Выполняется условие на равенство 1 и функция возвращает 1 в main.В этом вызове мы не доходим до рекурсивного вызова.Так почему тогда происходит рекурсивный подьем после достижения n=1?Ведь после этого функция должна вернуть 1 и передать управление в функцию main cледующей команде после вызова функции factorial?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru