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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ объектно-ориентированный анализ,объектно-ориентированное проектирование http://www.cyberforum.ru/cpp-beginners/thread55273.html
Прошу помочь построить диаграмму прециндентов и диаграмму классов,мне необходимо только начало диаграммы или хотя-бы какой-нибудь пример с этими диаграммами.Заранее благодарен за помощь ----------------------------------------------------------------------------------------------- Задание: Осуществить объектно-ориентированный анализ и объектно-ориентированное проектирование програ-ми, что...
C++ Поменять дату и время создания у файлов Возникла необходимость поменять дату и время создания большого количества файлов. Так вот что-то я немного запутался и никак не выходит использовать команду SetFileTime. Я к ней и так и этак, а в итоге время не меняется. Может поможете новичку? P.S. Пытаюсь писать код в Visual Studio 2008. Добавлено через 1 час 10 минут Разобрался, все дело было в преобразовании времени. А помог кусок кода... 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 секунд. Это нормально или можно оптимизировать? Метод вычисления прямоугольники или трапеции ( в принципе без разницы.. И там и там где-то 10 сек. ) На других функциях ( y = sin x, y = x) менее чем за 150 миллисекунд. Что можете сказать? Приложу код на С++, но это не важно, важен...
C++ Простая задача. http://www.cyberforum.ru/cpp-beginners/thread55246.html
Пожалуйста помогите кто может, очень нужно Даны натуральное число n, действительные числа a1,...,an (1 и n это нижние индексы). Выяснить образуют ли возрастающую последовательность числа: a1,...,an, 2a1, 3a2,...,(n+1)an (опять же 1, n, 2 нижние индексы). заранее огромное спасибо.
C++ Связь С++ с программой на ассемблере Помогите пожалуйста! Не удается создать связь Borland C++ v5.02 с программой на ассемблере через стек. при удалении строк с вызовом внешней функции и компилированием всё работает. при компилировании с ключом -S вызов функции в Pfar идет near.. программа на С++ файл zad77.cpp /* Главная программа на языке Си для сопряжения с подпрограммой на Ассемблере. подробнее

Показать сообщение отдельно
xBot01
9 / 9 / 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() является рекурсивной.
Она вызывает сама себя пока не дойдет до основного случая.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru