2007-08-06

_ [Ruby] FizzBuzz

今日はどうもやる気が起きなくて、最近Ruby書いてないなあと思いながら、 Matzにっきのこの記事にあったFizzBuzzについて、コードを書いてみた。

お題
1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは 数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
その1
_count = 0

while _count < 100
  _count += 1
  if (_count%3 == 0 && _count%5 == 0)
    print "FizzBuzz\n"
  elsif _count%3 == 0
    print "Fizz\n"
  elsif _count%5 == 0
    print "Huzz\n"
  else
    print _count
    print "\n"
  end
end
その2
_count=0

100.times do
 _count += 1
  if (_count%3 == 0 && _count%5 == 0)
    print "FizzBuzz\n"
  elsif _count%3 == 0
    print "Fizz\n"
  elsif _count%5 == 0
    print "Huzz\n"
  else
    print _count
    print "\n"
  end
end
その3(これもあり?)
_count = 0
_counter = Array.new(100)
_counter.each do |i|
  _count += 1
  if (_count%3 == 0 && _count%5 == 0)
    print "FizzBuzz\n"
  elsif _count%3 == 0
    print "Fizz\n"
  elsif _count%5 == 0
    print "Huzz\n"
  else
    print _count
    print "\n"
  end
end

ちなみに私は4年前は全然プログラムできないプログラマ候補でした。 もちろん最初の2年くらいは戦力のせの字にもなりませんでした。

でも、今ではなんとなく書くことができるので、努力すれば何とかなるんじゃないかと思います。

それより、算数が苦手な私は3の倍数と5の倍数ってどうやって計算するんだ?と悩んでしまった。

プログラマ以前の問題である....

本日のツッコミ(全2件) [ツッコミを入れる]
_ (2007-08-10 04:29)

ちょっと冗長じゃない? print _count; print "\n" って一つにまとまるっしょ。<br><br>まぁ、短ければ良いってモノでも無いけど。

_ tellme (2007-08-13 04:56)

そもそも改行もいらないかもしれませんね:-)


«前の日記(2007-08-03) 最新 次の日記(2007-08-14)»