問題「階乗」をC言語の int
型の変数で処理すると, を出力しようとしてオーバーフローし,正しい値が出力されない。また,負の整数の階乗はそもそも定義されていない。
では,次のようにこれらの例外を処理しよう。
これを踏まえて,問題に取り組んでみよう。
与えられた整数列 に対して, を満たす最小の を求め, の階乗 の値を出力せよ。
(分かりにくいと思うので,サンプルを見ることを推奨します。)
入力は以下の形式で標準入力から与えられます。
答えの値 を以下の形式で出力してください。
10 5 4 11 8
3628800
は を満たしているので, を出力します。
-10 5 14 9 7
120
は条件を満たしていません。次の は条件を満たしているので, を出力します。
-10 14 -2 8 15
40320
は条件を満たしていません。同様に も条件を満たしていません。その次の は条件を満たしているので, を出力します。