[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Fwd: quiz 93 solution

James Gray

9/3/2006 3:49:00 PM

Begin forwarded message:

> From: William.B.Henderson-Frost@Dartmouth.EDU (William B. Henderson-
> Frost)
> Date: September 2, 2006 12:06:09 PM CDT
> To: submission@rubyquiz.com
> Subject: quiz 93 solution
> Reply-To: William.B.Henderson-Frost@Dartmouth.EDU (willhf)
>
> # William Henderson-Frost
> # Ruby-Quiz 93
>
> # This solution works for base ten numbers.
> # I look forward to seeing how others handle the different bases.
> # (googolplex ** googolplex) is a happy number =D
>
> class Integer
>
> def happy?
> n, found = self, []
> loop do
> found << n ; next_n = 0
> n.to_s.scan(/./) { |i| next_n += i.to_i**2 } ; n = next_n
> return found if n == 1
> return false if found.index(n)
> end
> end
>
> def Integer.happiest(limit)
> num = 1
> (1..limit).each { |n| num = n if n.happy? and n.happy?.size >
> num.happy?.size }
> num
> end
>
> end
>
> #puts Integer.happiest(1000000)
> #puts (('9' * 975) + '421111').to_i.happy?
>
> puts 2.happy? #=> false
> puts 78999.happy?.join(', ') #=> 78999, 356, 70, 49, 97,
> 130, 10