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

Рекурсивная функция - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ полином тейлора http://www.cyberforum.ru/cpp-beginners/thread224630.html
Люди,помогите написать рекурсию для такого задания(на вложенной фотке номер 14)... плизззззз.......
C++ Найти наибольший элемент матрицы Найти наибольший элемент матрицы и записать единицу в тот рядок и столбец на перекрёстке которых он содержится.Размерность матрицы вводить с клавиатуры,а элементы разместить в памяти динамически. Проверьте плиз прогу #include <iostream.h> #include <stdio.h> #include <conio.h> void main() { int i,j,m,n,x,y,max; http://www.cyberforum.ru/cpp-beginners/thread224619.html
Прохождение лабиринта C++
Привет всем , вот такая задача ... Найдите маршрут в квадрате, который начинался бы и заканчивался в ячейке 1. При этом посетить все ячейки по одному разу, не попадая в черные. 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 2 2 0 0 0 2 2 0 0 0 0 0 0
C++ Примитивный шаблонный класс С++
Создайте пожалуйста любой шаблонный класс на начальном (или "примитивном") уровне языка. Для понимания сделайте с розьяснением пожалуйста. Буду очен благодарен. Добавлено через 2 минуты Если можно,то с вектором чтото подобное замудрите.
C++ Харт Системное программирование в среде Windows http://www.cyberforum.ru/cpp-beginners/thread224594.html
Здравствуйте! Есть люди,которые читали книгу Харт Системное программирование в среде Windows? Меня интересуют упражнения, который в конце глав. Есть ли они где-то, или возможно кто-то их делал?
C++ Встроенные функции в компилятор Здравствуйте уважаемые форумчане! В процессе изучения С++ столкнулся с такой проблемой!Занимаюсь на платформе C++ 6.0 и хотел бы знать есть ли встроенные функции для перевода вот таких вещей! int в char mas;и на оборот. double в char ; и на оборот. int в string; и на оборот. double в string; и на оборот. Так как я еще новичок в этом деле мне пока еще рано знать как написать свои функции... подробнее

Показать сообщение отдельно
dikanev
21 / 21 / 1
Регистрация: 28.05.2010
Сообщений: 67
06.01.2011, 14:45     Рекурсивная функция
Стек можно использовать явно, тогда никаких ограничений не будет. Рекурсия подразумевает, что решение задачи требует решения подобных подзадач, отличающихся набором параметров. Что надо делать в каждой подзадаче определяется набором параметров. Так вот вместо рекурсивных вызовов надо помещать параметры текущей подзадачи в стек и заниматься решением верхней в стеке подзадачи пока стек не опустеет.

Наверное, проще будет понять на примере. Вместо
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure RecProc(параметры1);
begin
  DoSomething(параметры1);
  if <условие> then
  begin
    параметры2 := f(параметры1);
    RecProc(параметры2);
    параметры3 := g(параметры1);
    RecProc(параметры3);
  end;
end;
следует писать
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure NonRecProc(параметры1);
begin
  PushStack(параметры1); //Помещаем параметры1 в стек
  while <стэк не пуст> do
  begin
    пареметры := PopStack; //достаем параметры из стека
    DoSomething(параметры);
    if <условие> then
    begin
      параметры3 := f(параметры);
      PushStack(параметры3);
      параметры2 := f(параметры);
      PushStack(параметры2);
    end;
  end;
end;
Upd. Не посмотрел, что это сишный форум. Но думаю идея понятна и на Паскале.
 
Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru