#start_time = Time::now
val = 0
for i in 900..999
for j in 900..999
num = i * j
n = num.to_s
val = num if (n.slice(0,1) == n.slice(5,1))&&(n.slice(1,1) == n.slice(4,1))&&(n.slice(2,1) == n.slice(3,1))&&(num > val)
end
end
puts val
#end_time = Time::now
#puts end_time - start_time
最初に解いたときは val = num if (n.slice(0,1) == n.slice(5,1))&&(n.slice(1,1) == n.slice(4,1))&&(n.slice(2,1) == n.slice(3,1))&&(num > val) の部分が多重ネストになってたのだが,うざかったので1本にまとめた.