2007-08-23 (Thu) [長年日記]

_ EPOCH@まつやま の問題例を Ruby で解いてみる はてなブックマークに追加 del.icio.usに追加 MM/Memoに追加

EPOCH@まつやま

なかなか良い練習になりました。

1. 『あなたの誕生日は何曜日?』

$ cat birth.rb
#!/usr/local/bin/ruby
puts %w|日 月 火 水 木 金 土|[Time.local(*$*).wday] + "曜日"
$ ./birth.rb 1990 7 7
土曜日
$

2. 『太りすぎ?やせすぎ?』

$ cat bmi.rb
#!/usr/local/bin/ruby
puts lambda {|kg, cm| 
  case kg.to_f / (cm.to_f / 100)**2
  when 0...18.5
    "やせすぎ"
  when 18.5...25
    "普通"
  when 25...30
    "太りぎみ"
  else
    "肥満"
  end
}.call(*$*)
$ ./bmi.rb 30 100
肥満
$

3. 『約数を求めよう!』

$ cat divisor.rb
#/usr/local/bin/ruby
puts (1..$*[0].to_i).select{|i| $*[0].to_i % i == 0}.join(" ")
$./divisor.rb 5678
1 2 17 34 167 334 2839 5678
$

4. 『キーワードはいくつある?』

$ cat keyword.rb
#/usr/local/bin/ruby
puts $*[0].scan($*[1]).size
$ ./keyword.rb ABpanCDpanpanEFpanpa pan
4
$

5. 『あなたは合格?不合格?』

$ cat pass.rb
#/usr/local/bin/ruby
puts ($*.all?{|p| p.to_i >= 30} and $*.inject(0){|r,i| r + i.to_i} >= 180) ? "合格" : "不合格"
$ ./pass.rb 82 73 51
合格
$

関連記事

Permalink | このエントリを含むはてなブックマーク | このエントリをはてなブックマークに追加 | このエントリを含むMM/Memo | このエントリをMM/Memoに追加 | このエントリを含むdel.icio.us | このエントリをdel.icio.usに追加 | Tags: ruby
[]