Рекурсивные функции
Рекурсия — это когда функция сама себя вызывает. Классический пример рекурсии — функция для вычисления факториала. Факториал числа — это произведение всех натуральных чисел от 1 до этого числа. Например, факториал 5 можно найти так:
5! = 1 * 2 * 3 * 4 * 5
Если формулу вычисления факториала написать в рекурсивном виде, получится следующее:
x! = x * (x-1)!
Этой формулой можно воспользоваться для того, чтобы написать рекурсивную функцию:
#!/bin/bash
function factorial {
if [ $1 -eq 1 ]
then
echo 1
else
local temp=$(( $1 - 1 ))
local result=$(factorial $temp)
echo $(( $result * $1 ))
fi
}
read -p "Enter value: " value
result=$(factorial $value)
echo "The factorial of $value is: $result"
Проверим, верно ли работает этот скрипт.
Вычисление факториала
Как видите, всё работает как надо.
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ