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

おすすめ記事