Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Разные способы реализации факториала |
Автор: avnemchenko 10.7.2009, 12:09 | ||||||
Добрый день! Какие есть различные технологии реализации расчета факториала в С++? Ну и сравнение скоростей... Подчеркиваю - именно ТЕХНОЛОГИИ, а не способы (скажем, использование цикла - это технология, а вот цикл for (..), while(..){} или do{..}while(..) - это способы). Мне пришли в голову 3 технологии: Циклы: Это очевидно и первое приходит в голову (в мою голову ![]()
Рекурсивные функции Немного короче, но дольше в исполнении и линейный рост используемой памяти.
Шаблоны (расчет при компиляции) Достоинство и недостаток - результат возвращается при компиляции. Скорость, естественно, максимально возможно высокая. Но передавать можно только константу.
Можно ли использовать подставляемые функции inline или функции #define? Inline у меня в Visual C++ 8 все равно обычная функция - значит, речь идет о рекурсивной функции. С #define ничего не вышло - компилятор не захотел раскрыть рекурсию и реализовать расчет по образу шаблона. Интересно бы услышать еще какие-нибудь другие технологии на С++ без ассемблера! |
Автор: avnemchenko 10.7.2009, 12:24 | ||
Интересно! Но что-то у меня там не открываются ссылки... Но это и не важно - я говорю не об алгоритмах, а о ТЕХНОЛОГИЯХ. Я использовал три - циклы, рекурсия и шаблоны. Можно ли сюда чего добавить? |
Автор: azesmcar 10.7.2009, 12:25 |
http://forum.vingrad.ru/forum/topic-262993.html |
Автор: avnemchenko 10.7.2009, 12:31 | ||
Ой! Я эту тему поиском почему-то не нашел ... Спасибо! |
Автор: Lazin 10.7.2009, 12:58 |
это 3 реализации одного и того-же алгоритма |
Автор: Леопольд 10.7.2009, 21:13 |
Теперь, видимо, надо будет "собрать разные способы реализации" теоремы Пифагора ![]() |