尝试翻译:
纯粹在 Bash/shell 脚本中编写阶乘的基本、优雅且快速的方法是什么? (代码)请提出建议。 (代码)
除了基本/优雅/快速之外,还可以使用 BASH(Shell 脚本)中的计算方法进行计算。
Ex.: 5! = 5*4*3*2*1 = 120
要点:
num=5
echo $(($(eval echo {$num..1} | sed 's/ /*/g')))
答案1
这无需评估即可工作:
prod=$(echo {1..5}* 1); echo $((prod))
这是一个 bash 函数,它带有一个参数,这在上面的解决方案中是不可能的:
fak ()
{
echo $(($(seq -s'*' 1 $1)))
}
正如 cas 在评论中指出的那样,Shell 仅限于 64 位,为了获得更大的结果,bc 值得一试,但这不是 puro,不是吗?嗯 - 这个参数也适用于 seq;这是一个外部程序。
echo {1..30}* 1 | bc