Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

「トグルスイッチを切り換えよう!」を解いてみました

CodeIQの「トグルスイッチを切り換えよう! by The Essence of Programming」を解いてみました。
結果は、

でした。正解できてほっとしています。

solv.rb

# -*- coding: utf-8 -*-
LEN = 10

states = []

# グレイコードを求める
def gray(v)
  return (v ^ (v >> 1))
end

(0...(2**LEN / 2)).each {|i|
  g = gray(i)
  states << g
  states << ~g
}
states << 0
states.shift

states.each {|pat|
  (0...LEN).each {|i|
    printf "%d", pat[LEN-(i+1)]
  }
  printf "\n"
}