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

Принцип работы рекурсии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Добавить в элементы список и вывести их на экран http://www.cyberforum.ru/cpp-beginners/thread656208.html
написала программу, которая добавляет в список элементы и должна их выводить на экран. функция, которая должна их выводить не работает. подскажите, в чем ошибка? #include <iostream> using namespace std; struct list { int data; list *next;
C++ auto Хочу сделать автомат. переменную auto int x; auto double f; Ругается. Как исправить? http://www.cyberforum.ru/cpp-beginners/thread656204.html
C++ Раздельная компиляция
Пусть есть программа, которая состоит из 2 файлов. 1 файл: основной, там где main 2 файл: содержит некоторые функции Также есть header. Я набираю текст программы в wordpad. Далее хочу скомпилировать оба файла, причём, так, чтобы в 1 можно было использовать функции из другого. Как это сделать? В командной строке пишу так: cl /EHsc file1.cpp file2.cpp
закрытие консоли C++
в чем допущена оплошность:требуется ввести размер матрицы,вводим допустим 5,происходит вывод на экран,далее следует выбор: удалить одну строку(выбираем 1) либо удалить несколько( выбираем 2).допустим вводим 1.Следует вопрос "какую строку удалить".вводим к примеру 3....происходит выполнение ,но за доли секунды консоль закрывается,хоть есть "торможение" и system("PAUSE") было и getc(stdin) и тд....
C++ unsigned char максимум и минимум цикл http://www.cyberforum.ru/cpp-beginners/thread656183.html
Тут небольшая непонятка - выводятся пустые символы, это и есть максимальное и минимальное значение типа unsigned char? #include <iostream> using namespace std; int main() { //переменная для типов данных unsigned char f;
C++ Исправить ошибки в программе "Hello, World" в общем первая программа после hello world на С++ , помогите исправить апшибки пжл п.с. что за тупая система не дает создать тему со словом помогите о_О подробнее

Показать сообщение отдельно
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
23.09.2012, 00:10     Принцип работы рекурсии
C++
1
2
3
4
5
int f(int i)
{
   if(i <= 1)return 1;
   return i+f(i-1);
}
Теперь вызываем f(3)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int f(3)
{
   if(3 <= 1)return 1;//false
   return 3+f(2);//вызывается f(2), а f(3) ждет, когда она доработает. Т.е. f(3) будет висеть в памяти
   //когда f(2) вернет результат, то к нему добавится 3. f(3) вернет эту сумму и закончит работать
}
 
int f(2)
{
   if(2 <= 1)return 1;//false
   return 2+f(1);//вызывается f(1), а f(2) ждет, когда она доработает. Т.е. f(2) будет висеть в памяти
   //когда f(1) вернет результат, то к нему добавится 2. f(2) вернет эту сумму и закончит работать
 
}
 
int f(1)
{
   if(1 <= 1)return 1;//true - выход из рекурсии
   return 2+f(0);//уже не выполнится
 
}
Таким образом, последовательность такая:
f(3) начинает работать
f(2) начинает работать
f(1) начинает работать
f(1) заканчивает работать
f(2) заканчивает работать
f(3) заканчивает работать
 
Текущее время: 10:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru