С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Рекурсия, факториал - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рисование в C++ Windows Forms http://www.cyberforum.ru/cpp-beginners/thread646237.html
Всем здравствуйте такое задание нужно нарисовать с помощью треуголиников, квадратов, прямоугольников и кругов что то на подобие животного цветного с глазами ну в общем все как положено))) (Кошка...
C++ unresolved external symbol в glm.h сидят структуры вида struct Vector2D; struct Vector3D; struct Vector4D; struct Matrix2D; struct Matrix3D; struct Matrix4D; ... http://www.cyberforum.ru/cpp-beginners/thread646204.html
C++ Напечатать все пары дружественных чисел
Помогите пожалуйста решить рационально задачу: Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого, за исключением самого себя (таковы, например,...
Cannot convert 'const wchar_t *' to 'const char *' C++
HMODULE hMod=GetModuleHandle(NULL); if(!hMod) { } HRSRC hRes=FindResource(hMod,"acc.dll",RT_RCDATA); if(!hRes){ } HGLOBAL hGlob=LoadResource(hMod,hRes); if(!hGlob) { } BYTE...
C++ Настройка Geany на Windows (не пашет) http://www.cyberforum.ru/cpp-beginners/thread646157.html
Помогите!!! Может кто встречался с такой проблемой. В общем только Geany установил, воткнул туда код с книжки (перед этим поменял кодировку на Русская и тип файла C++ #include <iostream.h> int...
C++ Недопонимание указателей Уже прошёл их по книжке давно, но они частенько встречаются, и я никак не могу понять некоторые процессы с ними. Допустим есть в классе какие-то данные типа int lim, char name Методы принимают... подробнее

Показать сообщение отдельно
Day
1159 / 964 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
05.09.2012, 01:02
Цитата Сообщение от Invader_Zim Посмотреть сообщение
и самое банальное вешающее систему:

Код C++
Тут вы совершенно правы. Рекурсия - чрезвычайно изящная, но и столь же опасная штука. Я прекрасно понимаю стремление преподавателей обьяснить ее на несколько экзотичном факториале. Но сам, конечно, никогда в жизни вещи, которые можно вычислить иттерационно, не стану делать рекурсивно. Рекурсия использует стек, чье поведение слабо контролируется, и который жрет самое дорогое - память (причем, бесконтрольно). Ну что произойдет, если я иттерационной функции fact дам на вход слишком большое число? Ну, будет неверный результат (такой же будет и у рекурсивной, если она сумеет доработать). А рекурсивная fact просто вылетит с трудно понимаемыми сообщениями.
Кстати, Д.Кнут в своей попытке энциклопедии явно рекурсивные алгоритмы реализовывал БЕЗ рекурсии! Правда, ему пришлось вводить такие массивы, как Stek1, StekOut и т.п...

Добавлено через 12 минут
Не думаю, что Д.Кнут не знал о рекурсии. Конечно, прекрасно знал! Но он рассматривал свою энциклопедию, как Учебник, и не хотел учить ОПАСНОМУ.
А вот чего он, кажется, не знал, так это СТРУКТУР (ничего не говоря уже о классах), поэтому его великолепные алгоритмы выглядят весьма неуклюже.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.