Project Euler Problem4

Rubyによる方法

def palindromic_number(n, a=0)
  if n == 0
      a
  else
      q, r = n.divmod 10
      palindromic_number(q, a * 10 + r)
  end
end

def is_palindromic_number(n)
  n == palindromic_number(n)
end

largest_palindromic_number = 0
999.downto(100) { |a|
  999.downto(a) { |b|
    c = a * b
    if c < largest_palindromic_number
      break
    end
    if is_palindromic_number(c)
      if c > largest_palindromic_number
        largest_palindromic_number = c
      end
    end
  }
}
puts largest_palindromic_number