編寫腳本程序:編寫一個(gè)函數(shù),用來計(jì)算某值的階乘给郊。然后從鍵盤輸入n牡肉,調(diào)用該函數(shù),計(jì)算1到n的階乘的和淆九。如果輸入的n小于0或大于10荚板,則重新輸入。?
小編在之前的博客中發(fā)過一道類似的題目吩屹,最近準(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