« またまた、 Problem 1 | トップページ | Project Euler - Problem 3 »

2009年6月 2日 (火)

Project Euler - Problem 2

問題はこちらをご覧ください。


ここにも書きましたが、反復的に求めていきます。

まずは、単純に足していくもの……

MAX = 400_0000 sum = 0 a, b = 1, 1 while a < MAX sum = sum + a if a.even? a, b = a + b, a end puts(sum)

次は、フィボナッチ数列を一旦配列に収めてから加工していくもの……

MAX = 400_0000 def fib_list(limit) f = Array.new a, b = 1, 1 while a < limit f.push(a) a, b = a + b, a end return f end sum = fib_list(MAX).select{|x| x.even?}.inject(:+) puts(sum)

どちらも Ruby 1.9 なら 0.02 〜 0.05 秒くらいで結果が出ます。

« またまた、 Problem 1 | トップページ | Project Euler - Problem 3 »

Project Euler」カテゴリの記事

Ruby」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/112020/45214273

この記事へのトラックバック一覧です: Project Euler - Problem 2:

« またまた、 Problem 1 | トップページ | Project Euler - Problem 3 »

2016年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
フォト

最近のトラックバック

無料ブログはココログ