結果

問題 No.634 硬貨の枚数1
ユーザー d2verbd2verb
提出日時 2018-01-20 19:04:54
言語 Crystal
(1.11.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 293 bytes
コンパイル時間 870 ms
コンパイル使用メモリ 217,400 KB
最終ジャッジ日時 2024-04-27 02:31:06
合計ジャッジ時間 1,305 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Showing last frame. Use --error-trace for full trace.

In Main.cr:5:23

 5 | tris << i * (i + 1) / 2
                         ^
Error: expected argument #1 to 'Array(Int32)#<<' to be Int32, not Float64

Overloads are:
 - Array(T)#<<(value : T)

ソースコード

diff #

n = gets.not_nil!.to_i
k = ((Math.sqrt(1 + 8 * n) - 1) / 2).to_i
tris = [] of Int32
1.upto(k) do |i|
  tris << i * (i + 1) / 2
end

if tris.includes? n
  p 1
else
  ok = false
  Array(Int32).product(tris, tris).each do |elm|
    a, b = elm
    ok = ok || (a + b) == n
  end
  p ok ? 2 : 3
end
0