結果

問題 No.500 階乗電卓
ユーザー gemmarogemmaro
提出日時 2020-05-13 08:55:27
言語 Elixir
(1.16.2)
結果
WA  
実行時間 -
コード長 397 bytes
コンパイル時間 1,106 ms
コンパイル使用メモリ 63,712 KB
実行使用メモリ 55,052 KB
最終ジャッジ日時 2024-06-09 23:59:18
合計ジャッジ時間 16,483 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 586 ms
54,144 KB
testcase_01 AC 583 ms
53,804 KB
testcase_02 AC 586 ms
54,136 KB
testcase_03 AC 587 ms
54,628 KB
testcase_04 AC 589 ms
54,000 KB
testcase_05 AC 595 ms
53,728 KB
testcase_06 AC 596 ms
54,252 KB
testcase_07 AC 588 ms
54,100 KB
testcase_08 AC 594 ms
54,912 KB
testcase_09 AC 585 ms
55,052 KB
testcase_10 AC 586 ms
53,600 KB
testcase_11 AC 588 ms
53,820 KB
testcase_12 AC 591 ms
54,332 KB
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 AC 604 ms
54,228 KB
testcase_17 AC 586 ms
53,748 KB
testcase_18 AC 581 ms
54,308 KB
testcase_19 AC 592 ms
54,324 KB
testcase_20 AC 583 ms
54,460 KB
testcase_21 AC 587 ms
53,992 KB
testcase_22 AC 593 ms
54,148 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

defmodule Main do
  @mask 1_000_000_000_000

  def main do
    IO.read(:line) |> String.trim() |> String.to_integer() |> solve |> IO.puts()
  end

  def solve(n) do
    cond do
      n < 40 -> solve_rec(n, 1)
      true -> "000000000000"
    end
  end

  def solve_rec(1, r) do
    r
  end

  def solve_rec(n, r) do
    tmp = n * r
    solve_rec(n - 1, tmp - (tmp |> div(@mask)) * @mask)
  end
end
0