Факториал
Вычисление факториала числа: $n! = 1 \times 2 \times 3 \times \ldots \times n$. Например, $5! = 120$.
Показаны два способа: рекурсия и цикл.
Рекурсивный вариант
Главная программа
Считываем число и вызываем функцию факториал:
алг
нач
цел n
вывод "n = "
ввод n
вывод n, "! = ", факториал(n), нс
кон
Функция факториал
Объявление алг цел факториал(цел n) означает: функция принимает целое число n и возвращает целое число.
алг цел факториал(цел n)
нач
если n <= 1
то
знач := 1
иначе
знач := n * факториал(n - 1)
все
кон
Как это работает:
- Базовый случай: если $n \le 1$, возвращаем 1 (факториал нуля и единицы равен 1)
- Рекурсивный случай: иначе возвращаем $n \times \text{факториал}(n-1)$
знач— специальная переменная, через которую функция возвращает результат
Например, факториал(4) вычисляется так: $4 \times 3 \times 2 \times 1 = 24$.
Итеративный вариант (через цикл)
Тот же результат, но без рекурсии — просто умножаем числа от 2 до $n$ в цикле:
алг цел факториал(цел n)
нач
цел результат, i
результат := 1
нц для i от 2 до n
результат := результат * i
кц
знач := результат
кон
нц для i от 2 до n— цикл: переменнаяiпроходит значения 2, 3, ..., n- На каждом шаге умножаем
результатнаi
Полная программа
алг
нач
цел n
вывод "n = "
ввод n
вывод n, "! = ", факториал(n), нс
кон
алг цел факториал(цел n)
нач
если n <= 1
то
знач := 1
иначе
знач := n * факториал(n - 1)
все
кон