結果

問題 No.500 階乗電卓
コンテスト
ユーザー Leonardone
提出日時 2017-04-08 00:08:45
言語 Haskell
(9.14.1)
コンパイル:
ghc -rtsopts -with-rtsopts=-K1G -o a.out -O2 _filename_
実行:
./a.out
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 458 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 5,279 ms
コンパイル使用メモリ 191,744 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2026-03-11 07:27:21
合計ジャッジ時間 2,519 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.14.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #
raw source code

-- Try yukicoder
-- author: Leonardone @ NEETSDKASU

main = putStrLn . solve . read =<< getLine

solve x
    | x > 49    = zeros -- 因数に2と5が両方12個以上あると下12桁はずっと0
    | x < 15    = answer
    | otherwise = reverse . take 12 . reverse $ zeros ++ answer -- 上を0埋め
    where
        zeros  = replicate 12 '0'
        answer = show $ kaijo 1 x
        kaijo a 0 = a
        kaijo a k = kaijo (a * k `mod` 10 ^ 12) (k - 1)
0