fork download
  1. f = -> n {
  2. pn = -> n {n.to_s.reverse.to_i == n ? [n] : []}
  3. aux = -> m, a, b {0 < m.size ? m : aux.(pn.(a) + pn.(b), a - 1, a + 1)}
  4. aux.(pn.(n), n - 1, n + 1)
  5. }
  6. p [0, 17, 100].map {|n| [n, f.(n)]}
Success #stdin #stdout 0.01s 8112KB
stdin
Standard input is empty
stdout
[[0, [0]], [17, [11]], [100, [99, 101]]]