函数递归计算阶乘(Bash)

函数递归计算阶乘(Bash)

Content #

局部函数变量的一个特性是自成体系(self-containment)。除了获取函数参数,自成体系的函数不需要使用任何外部资源。

递归算法的经典例子是计算阶乘。 5! = 1 * 2 * 3 * 4 * 5 = 120 使用递归,这一算法可以简化为以下形式: x! = x * (x-1)! 阶乘函数用其自身计算阶乘的值:

$ cat test13
#!/bin/bash
# using recursion

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"
$
$ ./test13
Enter value: 5
The factorial of 5 is: 120
$

From #

Linux命令行与shell脚本编程大全