编写Shell脚本,在脚本中定义⼀个递归函数,实现 n 的阶乘的求解;
时间: 2023-12-03 11:46:41 浏览: 105
可以参考以下的 Shell 脚本实现:
```shell
#!/bin/bash
# 定义递归函数
function factorial {
if [ $1 -eq 1 ]; then
echo 1
else
local temp=$(factorial $(( $1 - 1 )))
echo $(( $1 * $temp ))
fi
}
# 输入要求阶乘的数字
echo "请输入一个正整数:"
read num
# 调用递归函数
result=$(factorial $num)
# 输出结果
echo "$num 的阶乘为:$result"
```
在这个脚本中,我们定义了一个名为 `factorial` 的递归函数,用于计算给定数字的阶乘。函数中使用了 if-else 语句来实现递归,当输入的数字为1时,函数会返回1,否则函数会通过调用自身来计算 (n-1) 的阶乘,并将结果与 n 相乘得到 n 的阶乘。最后,在主程序中,我们输入要求阶乘的数字,调用递归函数得到结果,并输出到屏幕上。
阅读全文