【发布时间】:2021-12-11 11:04:09
【问题描述】:
我在这里定义了一个简单的factorial 递归函数。在num=5 之前它可以正常工作,但后来它开始提供垃圾值。我正在从用户那里读取num,然后将其输入到递归函数中。我无法弄清楚这个问题,因为我是 bash 算术方面的新手。
function fact {
if (( $1==1 ))
then
return 1
else
prev=$(( $1-1 ))
fact $prev
prev_fact=$?
this_fact=$( expr $1 \* $prev_fact )
# this_fact=$(( $1 * $prev_fact )) This also works the same way as above
return $this_fact
fi
}
echo -n "Enter the number: "
read num
fact $num
val=$?
echo "Factorial of "$num" is "$val""
【问题讨论】: