結果
問題 | No.3 ビットすごろく |
ユーザー | らっしー(raccy) |
提出日時 | 2014-12-11 07:19:48 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 538 ms / 5,000 ms |
コード長 | 866 bytes |
コンパイル時間 | 49 ms |
コンパイル使用メモリ | 7,680 KB |
実行使用メモリ | 12,416 KB |
最終ジャッジ日時 | 2024-07-01 07:09:37 |
合計ジャッジ時間 | 9,489 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
コンパイルメッセージ
Syntax OK
ソースコード
class BitSugoroku def initialize(n) @n = n end def saitan if @n == 1 return 1 end i = 1 kazoeta = [1] list = [1] while list.size > 0 i += 1 next_list = [] list.each do |x| bits = num_bit(x) add_n = x + bits del_n = x - bits if add_n == @n return i elsif (add_n < @n) && (! kazoeta.include?(add_n)) kazoeta << add_n next_list << add_n end if (! kazoeta.include?(del_n)) kazoeta << del_n next_list << del_n end end list = next_list end return -1 end def num_bit(x) count = 0 while x > 0 count += x & 1 x = x >> 1 end return count end end n = gets.to_i bs = BitSugoroku.new(n) puts bs.saitan