Kindleのセールでプログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問を買ったから、ぼちぼちやってく。Q01:10進数で回文。

Q: 10進数、2進数、8進数のいずれで表現しても回文数となる数のうち、10進数の10以上で最小の値を求める。

def nextNum(n:Int):Stream[Int] = n #:: nextNum(n+2)
nextNum(11).find{ decimal =>
  decimal.toString == decimal.toString.reverse &&
  decimal.toBinaryString == decimal.toBinaryString.reverse &&
  decimal.toOctalString == decimal.toOctalString.reverse
}.foreach(println)