编制Shell 程序,从键盘输入一个数n,如果输入的数字小于1,则重新输入,直到输入正确的n,然后计算1!+2!+…+(n-1)!+n!。
时间: 2024-11-25 16:17:19 浏览: 9
shell输入与输出
编写一个简单的Shell脚本来完成这个任务,你可以创建一个名为`factorial_sum.sh`的文件,并添加下面的内容:
```bash
#!/bin/bash
# 定义一个函数计算阶乘
factorial() {
if [ "$1" -eq 0 ] || [ "$1" -eq 1 ]; then
echo 1
else
local result=$(( $1 * $(factorial $(( $1 - 1 ))) ))
echo $result
fi
}
# 循环读取用户输入,检查是否有效并计算累加和
while true; do
read -p "请输入一个正整数n(大于0): " n
if [[ $n =~ ^[0-9]+$ ]] && [ $n -gt 0 ]; then
sum=0
for (( i = 1; i <= n; i++ )); do
sum=$((sum + $(factorial $i)))
done
echo "1! + 2! + ... + ($n-1)! + $n! 的和是: $sum"
break
else
echo "输入错误,请重新输入一个正整数。"
fi
done
# 检查脚本是否有执行权限,如果没有则提示设置
if [ ! -x "$(which bash)" ]; then
echo "此脚本需要.sh文件执行权限,请赋予执行权限(如chmod +x factorial_sum.sh)后再运行。"
fi
```
要在终端中运行这个脚本,你需要先赋予它执行权限(`chmod +x factorial_sum.sh`),然后通过`./factorial_sum.sh`命令来启动。
阅读全文