Skip to content

Instantly share code, notes, and snippets.

@savonarola
Created March 8, 2012 07:27
Show Gist options
  • Save savonarola/1999392 to your computer and use it in GitHub Desktop.
Save savonarola/1999392 to your computer and use it in GitHub Desktop.
def inc(s)
pos = s.rindex /[0-8]/
nines = s.length - pos - 1
s[0, pos] + (s[pos].to_i + 1).to_s + "0" * nines
end
ns = gets.chomp
1.upto(ns.to_i) do
s = gets.chomp
len = s.length
if s =~ /^9*$/
s = "1" + "0" * len
end
half_len = len / 2
left = s[0, half_len]
right = s[-half_len, half_len]
mid = len.odd? ? s[half_len] : ""
unless left.empty?
if left.reverse <= right
if mid.empty?
left = inc(left)
else
if mid.to_i < 9
mid = (mid.to_i + 1).to_s
else
left = inc(left)
mid = "0"
end
end
end
end
puts "#{left}#{mid}#{left.reverse}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment