編寫(xiě)腳本程序:編寫(xiě)一個(gè)函數(shù),用來(lái)計(jì)算某值的階乘。然后從鍵盤(pán)輸入n,調(diào)用該函數(shù),計(jì)算1到n的階乘的和。如果輸入的n小于0或大于10,則重新輸入。?
小編在之前的博客中發(fā)過(guò)一道類(lèi)似的題目,最近準(zhǔn)備考試,發(fā)現(xiàn)老師喜歡出題實(shí)現(xiàn)“重新輸入”,所以做了改編。
程序清單:
#!/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