Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685

Рекурсивное вычисление факториала, нужны комментарии

06.07.2018, 21:15. Показов 1314. Ответов 8

Студворк — интернет-сервис помощи студентам
ребята объясните как считается факториал по этой формуле.... я уже 4 раза прошелся отладчиком не пойму .... наверное даун... сам факториал считается !3= 1*2*3 = 6, а вот пример с рекурсивной функцией
C#
1
2
3
4
        int result;
        if (n == 1) return 1;
        result = FactR(n - 1) * n;
        return result;
я так понимаю если передать число 3 то получиться что то такое :
FactR(3 - 1) * 3; тут выходит 6
FactR(2 - 1) * 2; тут выходит 2
для единицы : if (n == 1) return 1;

что с этими результатам происходит...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2018, 21:15
Ответы с готовыми решениями:

Рекурсивное и не рекурсивное вычисление НОД
Здравствуйте! Имеется код вычисления НОД. Как сделать его рекурсивным и НЕ рекурсивным, и в чём отличие рекурсивного вычисления от...

Рекурсивное вычисление факториала 2n
рекурсивная функция рассчитывающая 2*N!

Рекурсивное вычисление факториала
Доброго времени суток! int Factorial(int n){ if(n <= 1){ return 1; } return n * Factorial(n - 1); ...

8
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.07.2018, 21:25
Esso11, в FactR(n - 1) вызовы помещаются в стек.
Сначала вызов для 3
Потом вызов для 2.
Потом вызов для 1
и только потом пошли вычисления.
Вернул 1,
Вернул 1*2
Вернул 2*3
Вернул 6 в самом конце.
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
06.07.2018, 21:35  [ТС]
amr-now, т.е. все предыдущие результаты от не складывает? просто последнее вычисление будет выведено на экран?

Добавлено через 2 минуты
amr-now, окей но потом идет 3*4 должно вернуть 12 а возвращает 24 почему?

Добавлено через 2 минуты
вот считая по этой ..... (чудесной формуле)
Вернул 1,
Вернул 1*2
Вернул 2*3
Вернул 3*4 .... тут идет результат факториал числа 4 .... как получается 24? гори оно синим пламенем...

Добавлено через 3 минуты
прошел рекурсию давно, применяю вроде правильно, а вот с элементарным примером не пойму как перемножение идет тут
0
 Аватар для Toros1992
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
06.07.2018, 21:39
На четвертом шаге будет не 3*4 а 6*4. 6 это результат прошлого метода, когда 2 умножалось на 3. А двойка в свою очередь это результат умножения 1 на 2
1
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
06.07.2018, 21:58  [ТС]
Toros1992, т.е. результат прошлого метода будет множиться на число передаваемое в новый метод?

Добавлено через 38 секунд
Toros1992, блин, спасибо, я думал сойду с ума, если не пойму))) спасибо еще раз
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.07.2018, 22:06
Цитата Сообщение от Esso11 Посмотреть сообщение
result = FactR(n - 1) * n;
Цитата Сообщение от Esso11 Посмотреть сообщение
т.е. результат прошлого метода будет множиться на число передаваемое в новый метод?
а то ))
1
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
06.07.2018, 22:15  [ТС]
amr-now, спасибо, у меня как гора с плеч ))) думал спать не буду)
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.07.2018, 22:17
Esso11, ну раз рекурсию знаете, следующий шаг - хвостовая рекурсия и монады. Делов то, как два пальца.
0
5 / 5 / 0
Регистрация: 20.08.2017
Сообщений: 685
08.07.2018, 06:31  [ТС]
amr-now, а в книге нет про это ни чего(

Добавлено через 1 минуту
учили только хвостовую очередь, а рекурсию хвостовую нет. А монады вообще для меня новое слово)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2018, 06:31
Помогаю со студенческими работами здесь

Рекурсивное вычисление факториала (перевести с С++ на ассемблер)
Переведите пожалуйста такой код: return((n == 1) ? 1 : n*fak(n - 1));

Рекурсивное нахождение определителя матрицы, нужны комментарии
Таков вопрос, брал на рассмотрение пример задачи <<Найти определитель матрицы>> алгоритм решения мне понятен но не понятен один...

Рекурсивное вычисление факториала, вводить значение аргумента с клавиатуры
TITLE PROGNAME (EXE) ; рекурсивное вычисление факториала ;---------------------------------------- STACKSG SEGMENT PARA STACK 'Stack' ...

Рекурсия: вычисление факториала (нужны объяснения)
здравствуйте! я начал изучать с++... дошел до функций (а именно рекурсии)... я понял, что рекурсия-это функция, которая сама себя...

Вычисление факториала и вычисление степени числа
Нужно проверить правильность сделанной программы если не правильно помогите исправить. Var a,a1,a2,a3,x,c,st,otvet:real; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru