linux shell脚本求n阶乘
时间: 2023-04-29 20:00:12 浏览: 203
以下是一个求n阶乘的Linux shell脚本:
```
#!/bin/bash
echo "请输入一个正整数:"
read n
result=1
for ((i=1; i<=n; i++))
do
result=$((result * i))
done
echo "$n 的阶乘为:$result"
```
使用方法:
1. 将以上代码保存为一个文件,例如 `factorial.sh`。
2. 在终端中进入该文件所在的目录。
3. 运行命令 `chmod +x factorial.sh`,将该文件设置为可执行。
4. 运行命令 `./factorial.sh`,按照提示输入一个正整数即可求出其阶乘。
相关问题
在Linux编写shell脚本,求n的阶乘,n=100
在Linux中,可以使用bc(basic calculator)命令计算大数的阶乘。
以下是一个求100的阶乘的shell脚本:
```bash
#!/bin/bash
n=100
result=1
for ((i=1; i<=$n; i++))
do
result=$(echo "$result * $i" | bc)
done
echo $result
```
解释:
1. 定义变量$n为100,变量$result为1,用于存储最终结果。
2. 使用for循环遍历1到$n之间的所有整数,每次循环将当前的整数乘到$result中,使用bc命令进行高精度计算。
3. 计算完成后,使用echo命令输出$result的值。
运行脚本,输出结果为:
```bash
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
```
Linux编写脚本实现n的阶乘,用read接受n的值
在Linux下,你可以使用bash shell编写一个简单的脚本来计算给定数字n的阶乘。首先,你需要创建一个名为`factorial.sh`的文件,然后在其中添加以下内容:
```bash
#!/bin/bash
# 使用read函数获取用户输入的n值
echo "请输入一个整数:"
read n
# 检查输入是否为正整数
if ! [[ "$n" =~ ^[0-9]+$ ]] || [ $n -lt 0 ]; then
echo "错误:请输入一个非负整数."
exit 1
fi
# 阶乘函数的递归实现
factorial() {
if [ $1 -eq 0 ] || [ $1 -eq 1 ]; then
echo 1
else
local result=$(( $1 * $(factorial $(( $1 - 1 ))) ))
echo $result
fi
}
# 调用函数并输出结果
result=$(factorial $n)
echo "阶乘结果是: $result"
```
保存文件后,通过运行`chmod +x factorial.sh`使其可执行,然后使用`./factorial.sh`来运行脚本。
阅读全文