shell程序,根据输入的参数n,计算得阶乘

如题所述

第1个回答  2011-06-01
用函数递归。

#!/bin/bash
multiply()
{
if [ $1 -gt 1 ]; then
result=`expr $result \* $1`
next=`expr $1 - 1`
multiply $next
fi
}

if [ $# -ne 1 ]; then
echo -e "Please input a parameter!\nUsage: $0 [n]"
exit 1
fi

result=1

if [ $1 -eq 1 ]; then
:
elif [ $1 -gt 1 ]; then
multiply $1
else
echo "Invalid input parameter! It MUST be a integer greater than 0."
exit 1
fi

echo "$1! = $result"
exit 0本回答被提问者采纳
相似回答