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

Рекурсия, факториал - 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++ Напечатать все пары дружественных чисел
Помогите пожалуйста решить рационально задачу: Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого, за исключением самого себя (таковы, например, числа 220 и 284). Напечатать все пары дружественных чисел, не превосходящих заданного натурального числа. Мой вариант работает правильно, но очень медленно, т. к. слишком много итераций....
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 *lpbArray=(BYTE*)LockResource(hGlob);
C++ Настройка Geany на Windows (не пашет) http://www.cyberforum.ru/cpp-beginners/thread646157.html
Помогите!!! Может кто встречался с такой проблемой. В общем только Geany установил, воткнул туда код с книжки (перед этим поменял кодировку на Русская и тип файла C++ #include <iostream.h> int main() { count<<"Hello World!\n"; return 0: } Выдает такое сообщение командная строка
C++ Недопонимание указателей Уже прошёл их по книжке давно, но они частенько встречаются, и я никак не могу понять некоторые процессы с ними. Допустим есть в классе какие-то данные типа int lim, char name Методы принимают указатели допустим Name::Name (const char * nm) почему при копировании std::strncpy (name, nm, lim-1) мы указываем просто nm, а не *nm ? Ведь nm - это адрес, а само значение это *nm. Т.е по сути в name... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
05.09.2012, 21:41     Рекурсия, факториал
Цитата Сообщение от IGPIGP Посмотреть сообщение
А n! - удобный пример для объяснения и понимания.
Лично я считаю это ужасным примером. Хуже может быть только
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool isOdd(unsigned);
 
bool isEven(unsigned x)
{
  if (x == 0) {
    return true;
  }
  else {
    return !isOdd(x - 1);
  }
}
 
bool isOdd(unsigned x)
{
  if (x == 1) {
    return true;
  }
  else {
    return !isEven(x - 1);
  }
}
Просто потому, что что-то можно выразить рекурсией, ещё не стоит так действительно делать. В императивных языках вроде Плюсов есть родные циклы, в которых факториал определяется не хуже как произведение чисел от единицы до n.

Ещё можно понять чисто функциональные языки, где циклы выражаются через хвостовую рекурсию, и использование факториала для объяснения хвостовой и не хвостовой рекурсии и т. п. Но не императивный Си.

Лучше бы показывали рекурсию на естественно рекурсивных вещах: qsort, ханойских башнях, поиске в дереве/графе.
 
Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru