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

Эээ... рекурсия?( - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ объектно-ориентированный анализ,объектно-ориентированное проектирование http://www.cyberforum.ru/cpp-beginners/thread55273.html
Прошу помочь построить диаграмму прециндентов и диаграмму классов,мне необходимо только начало диаграммы или хотя-бы какой-нибудь пример с этими диаграммами.Заранее благодарен за помощь...
C++ Поменять дату и время создания у файлов Возникла необходимость поменять дату и время создания большого количества файлов. Так вот что-то я немного запутался и никак не выходит использовать команду SetFileTime. Я к ней и так и этак, а в... http://www.cyberforum.ru/cpp-beginners/thread55268.html
Вывести все простые числа от 0 до 100 (цикл while) C++
Подскажите пожалуйста как при помощи цикла while и проверки вывести на экран все простые числа от 0 до 100. (1,3,5,7,11,13,17....)
Вычисление интеграла C++
Считаю интеграл на промедутке от -1 до 3... Интеграл a*a*a*a. Точность вычисления 0.00001... Код выполняется 10-12 секунд. Это нормально или можно оптимизировать? Метод вычисления прямоугольники или...
C++ Простая задача. http://www.cyberforum.ru/cpp-beginners/thread55246.html
Пожалуйста помогите кто может, очень нужно Даны натуральное число n, действительные числа a1,...,an (1 и n это нижние индексы). Выяснить образуют ли возрастающую последовательность числа:...
C++ Связь С++ с программой на ассемблере Помогите пожалуйста! Не удается создать связь Borland C++ v5.02 с программой на ассемблере через стек. при удалении строк с вызовом внешней функции и компилированием всё работает. при... подробнее

Показать сообщение отдельно
xBot01
10 / 10 / 1
Регистрация: 25.09.2009
Сообщений: 17
09.10.2009, 06:21
Цитата Сообщение от Х.М.Дейтел/П.Дж.Дейтел
Рекурсивная функция - это функция, которая вызывает саму себя либо непосредственно, либо косвенно( через другую функцию). Для решения задачи вызывается рекурсивная функция. Эта функция в действительности знает только, как решается простейший, так называемый основной случай задачи (или несколько таких случаев). Если рекурсия функции вызывается для решения основного случая, она просто возвращает результат. Если рекурсивная функция вызывается для решения более сложной задачи, она обычно делит задачу на две концептуальные части: одну часть, которую функцию умеет решать, и другую, которую не умеет. Что бы рекурсивное решение было работоспособным, последняя часть должна быть похожа на исходную задачу, но быть по сравнению с ней несколько проще или несколько меньше. Поскольку эта новая задача подобна исходной, функция запускает (вызывает) свой новый экземпляр, который будет работать над меньшей задачей; это называется рекурсивным вызовом или шагом рекурсии.
Пример: вычисление числа фибоначи.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using std::cout;
using std::endl;
 
unsigned long factorial( unsigned long);
 
int main()
{
   cout << "10! = " << factorial( 10 ) << endl;
}
 
unsigned long factorial( unsigned long number )
{
   // Проверить на основной случай
   if( number <= 1 )
      // Основные случаи: ( 0! = 1 ) && ( 1! = 1 ).
      return 1;
   else
      // Рекурсивный шаг
      return number * factorial( number - 1 );
}
Функция factorial() является рекурсивной.
Она вызывает сама себя пока не дойдет до основного случая.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru