编写脚本程序:编写一个函数,用来计算某值的阶乘。然后从键盘输入n,调用该函数,计算1到n的阶乘的和。如果输入的n小于0或大于10,则重新输入。
小编在之前的博客中发过一道类似的题目,最近准备考试,发现老师喜欢出题实现“重新输入”,所以做了改编。
程序清单:
#!/bin/bash
fun(){
n=1
s=1
while [ $n -le $1 ]
do
s=`expr $n \* $s`
n=`expr $n + 1`
done
return $s
}
add(){
sum=0
i=1
while [ $i -le $1 ]
do
fun $i
sum=$(($sum+$s))
i=$(($i+1))
done
return $sum
}
result(){
read n
if [ $n -ge 0 -a $n -le 10 ]
then
add $n
echo "The sum is $sum"
else
result
fi
}
result
exit 0