echo "请输入整数M、N(M>N)"
echo "M:"
read M
#判断M是否非空且为整数
if [ -z $M ]
then
echo "M 必须非空"
exit 1
elif ! [[ $M =~ ^-?[0-9]*$ ]]
then
echo "M 必须为整数"
exit 1
fi
echo "N:"
read N
#判断N是否非空且小于N的整数
if [ -z $N ]
then
echo "N 必须非空"
exit 1
elif ! [[ $N =~ ^-?[0-9]*$ ]]
then
echo "N 必须为整数"
exit 1
elif [ $M -le $N ]
then
echo "N必须小于M"
exit 1
fi
let "base = M-N"
result=1
fac (){
base=$1
result=$2
if [ $base -gt 0 ]
then
let "result *= base"
let "base -= 1"
fac $base $result
fi
}
#计算阶乘
fac $base $result
echo "M-N的阶乘为$result"
exit 0
上次看错题目了
[oracle@localhost test]$ cat c.sh#!/bin/shb=0echo "请出入n的值:"read nfor ((a=1a<=na++))dob=1/$a+$bdonec=`bc<<!scale=5$b!`echo "运算式是:$b"echo "最后的结果是:$c"[oracle@localhost test]$ sh c.sh请出入n的值:20运算式是:1/20+1/19+1/18+1/17+1/16+1/15+1/14+1/13+1/12+1/11+1/10+1/9+1/8+1/7+1/6+1/5+1/4+1/3+1/2+1/1+0最后的结果是:3.59768[oracle@localhost test]$欢迎分享,转载请注明来源:内存溢出
评论列表(0条)