| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Object Pascal: кроссплатформенные технологии > Вычисление факториала через рекурсивную процедуру |
| Автор: Paradise 1.6.2009, 20:04 |
| Уважаемые знатоки, прошу вас подсказать как вычислить факториал через рекурсивную процедуру. Дело в том, что через функцию зделал легко, а на процедуре застрял. Задание такое ничего не могу поделать. Не знаю, либо я тупой, либо препод загнал)) |
| Автор: Paradise 1.6.2009, 21:25 |
| Извините безголового, забыл сказать, что эту процедуру нужно потом использовать в формуле с = n! / ( m! * ( n - m )! ) Вот на этом я и застрял... |
| Автор: volvo877 1.6.2009, 22:23 | ||
| Угу, ты застрял всерьез и надолго... По одной простой причине: процедуру НЕЛЬЗЯ использовать в формуле. Использовать можно только функцию. С помощью процедур можно посчитать значение вот этой формулы, конечно, но для этого тебе понадобится 3 дополнительных переменных... Тебе надо это извращение? Вызывать - так же, как я показывал, все 3 выражения подряд, потом считать чему равно C:
|
| Автор: Paradise 1.6.2009, 22:40 |
| Вот именно, я не мог понять логику препода, сначала я подумал, что он перепутал с функцией, но когда нашел задачу и с фнукцией стал сомневаться в себе т. к. тут легче сделать даже через цыкл)) И это задание на гос екзамен, дурдом)) volvo877, спасибо огромное, вопрос решон Прийднться делать через три переменных) |
| Автор: source777 1.6.2009, 23:01 | ||||||
Разница всё же есть, в случае процедуры ты вынужден использовать хвостовую рекурсию, которую компилятор спокойно развернёт в цикл. А в случае функции, далеко не все понимают почему необходимо писать:
Во всяком, случае я бы на месте препода ожидал бы подобного решения и рассказа о том, что такое хвостовая рекурсия и зачем она нужна. Такое простое? |
| Автор: volvo877 2.6.2009, 09:25 |
Вообще-то надо ЧИТАТЬ хотя бы заголовок темы, перед тем, как ответить... Ясно сказано: вычислять факториал через процедуру, с функцией автор сделал самостоятельно... Вынужден? Кем это, интересно? Твоим заявлением? Где ты в коде видел хвостовую рекурсию? Умных слов начитался? Так почитай, хотя бы, что они означают... Во втором посте приведен код (который ты, кстати, скопировал), процедурой вычисляющий факториал безо всякой хвостовой рекурсии... Что я делаю не так? |
| Автор: source777 2.6.2009, 13:44 | ||||||||
Вот она:
|