case文を使ったあれこれ
標準入力から「文字列,数値」を取得して出力
・www,数値
「www」を数値回繰り返す
結果:wwwwwwwww
・HogeFuga,数値
数値が3で割れるときはHoge、5で割り切れるときはFuga、15で割り切れるときはHogeFuga、それ以外は数値
・Sosu,数値
数値番目の素数
・fib,数値
数値番目のフィボナッチ数
require 'prime' require 'matrix' a=STDIN.gets.split(",") i=a[1].to_i case a[0] when x="www" puts x*i when (x="Hoge")+(y="Fuga") s="" s += x if i%3==0 s += y if i%5==0 s =a[1] if s=="" puts s when "Sosu" puts Prime.each.take(i).last when "fib" puts ((Matrix[[1,1], [1,0]] ** i) * Vector[1,0])[1] end
条件式に代入を使っているのでコードが短くてRubyが好きなところ。
FizzBuzz的なところはもっと短くできるはず・・・
素数はもっと字数を少なくできるか?しらんけど
フィボナッチは、これ以上の短縮のアイデアは出てこない。