rubyでFizzBuzz
まあアルゴリズムはperlでFizzBuzz - だるろぐ跡地なわけだが。
ary3 = ['fizz', '', ''] ary5 = ['buzz', '', '', '', ''] (1..100).each do |i| v1 = i % 3 v2 = i % 5 #res = ary3[v1] << ary5[v2] res = ary3[v1] + ary5[v2] if res.length == 0 print i else print res end print ' ' end
<<だと何か変な動きになるなーと思ったら、<<は対象に文字列を付加する。だからary3[v1]が上書きされる。
これ分からなくて1時間悩んだ。
俺が期待したのは
my $res = $ary3[$v1] . $ary5[$v2];
だったが、結果は
my $res = $ary3[$v1] .= $ary5[$v2];
だったと。