« Project Euler - Problem 32 | トップページ | Project Euler - Problem 34 »

2009年7月15日 (水)

Project Euler - Problem 33

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


今回は何の工夫もしていません。問題をそのままコードにしてみました。

require 'mathn' # n : numerator 分子, d : denominator 分母 def nontrivial?(n, d) nq, nr = n.divmod(10) dq, dr = d.divmod(10) return false if nr != dq or dr.zero? return n/d == nq/dr end ans = Array.new (10 .. 98).each do |n| # n : 分子 (n + 1 .. 99).each do |d| # d : 分母, n/d < 1 なので n < d ans.push(n/d) if nontrivial?(n, d) end end puts ans.inject(:*)

Ruby では "mathn.rb" を読み込んでおけば、分数の計算を普通にできます。分数を足していけば自動的に約分をしてくれます。

« Project Euler - Problem 32 | トップページ | Project Euler - Problem 34 »

Project Euler」カテゴリの記事

Ruby」カテゴリの記事

コメント

コメントを書く

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

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

トラックバック

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

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

« Project Euler - Problem 32 | トップページ | Project Euler - Problem 34 »

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            
フォト

最近のトラックバック

無料ブログはココログ