번역해 보세요:
Bash/셸 스크립트에서 순수하게 팩토리얼을 작성하는 기본적이고 우아하며 빠른 방법은 무엇입니까? (코드) 제안해 주세요. (암호)
기본/우아함/빠름 외에도 BASH(Shell Script)의 계산 방법을 사용하여 계산을 수행할 수도 있습니다.
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가 의견에서 지적했듯이 쉘은 64비트로 제한되어 있습니다. bc는 더 나은 결과를 위해 시도해 볼 가치가 있지만 그것은 퓨로가 아닙니다. 그렇죠? 음 - 이 매개변수는 seq에도 적용됩니다. 이것은 외부 프로그램입니다.
echo {1..30}* 1 | bc