Project Euler

← Spam Spam Spam!     Movable Type 4.23 →

Problema: Come passare in maniera intelligente il proprio tempo libero alla sera? Guardare la Talpa è decisamente fuori discussione quindi in genere ripiego sul forum, nella sezione Programmazione sperando di vedere un nuovo contest in cui cimentarmi. Purtroppo però ultimamente gli utenti che organizzava questi piccoli concorsi sembra aver perso l'interesse di portarli avanti quindi per un po' sono rimasto a piedi.

Per un po'. Perché ora ho trovato quello che diventerà senza dubbio uno dei miei siti preferiti di sembre. Project Euler è una raccolta di più di 250 problemi di matematica ed informatica da poter risolvere con il linguaggio e gli strumenti che più si preferisce.

Una volta trovata la soluzione la si può confrontare con quella di altri centinaia di utenti e spesso leggere alcuni approfondimenti sugli algoritmi migliori da usare.

Come esempio riporto il codice che ho usato per trovare la soluzione al problema numero 4.

Infinity = 1.0/0.0
class Fixnum
 def is_palindromic?
 self.to_s == self.to_s.reverse
 end
end
def largest_palindrome(low,high)
 max = -Infinity
 low.upto high do |x|
 x.upto high do |y|
 z = x * y
 max = z if z.is_palindromic? and z> max
 end
 end
 max
end
puts largest_palindrome(100,999)

Nessun TrackBack

URL TrackBack: http://www.pigaz.org/cgi-bin/mt/mt-tb.cgi/113

2 Commenti

Lascia un Commento