Rubyのプログラミングの続き
変数のスコープ、そして引数という概念に苦しむ
「メソッド内ではメソッドで定義した変数しか使えない」
「そのために引数を使う」
ということを頭には入れているものの、実際に課題を解いてみると対応出来ないという現実
FizzBuzz挑戦
苦悩しつつもカリキュラムを進めていくと、Ruby問題というページにたどり着く。
ここで出てきたのがFizzBuzz問題
自分でもどこかで名前を聞いたことがあるレベルの有名な問題である。
以下が問題文
1〜100までの数字をターミナルに出力してください。
ただし、「3の倍数」のときは数字の代わりに文字列でFizzと、
「5の倍数」のときはBuzz、両方の倍数である「15の倍数」のときはFizzBuzzと出力してください。
何個かヒントがあり、ノーヒントというわけではない。解答時間制限は15分
さて、僕はどのようになったのか、というと
1時間近く考え、結局実行結果も合わないまま・・・
ギブアップ
解答を見て、「あ~なるほどね」
以後、カリキュラムを進めていくが問題という問題にはことごとく惨敗している。
せっかくなので僕が作ったFizzBuzz問題のコードをここに書いてみる。(失敗例)
def fizz_buzz
num = 1
while num <= 100 do
if num%3 > 0
puts num
num = num + 1
elsif num% 15 == 0
puts "fizzbuzz"
num = num + 1
elsif num % 5 == 0
puts "buzz"
num = num + 1
else num % 3 == 0
puts "fizz"
num = num + 1
end
end
end
fizz_buzz
どうぞ笑ってください。
これでも頑張ったんです。褒めて
模範解答のコードは3日目の方にでも貼ります。
コメント