Como calular um número fatory em Bash puro - (예: 5!) [닫기]

Como calular um número fatory em Bash puro - (예: 5!) [닫기]

번역해 보세요:

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

관련 정보