2014.2.23の第13回ゆるびぃ会で出題した問題の記録です。
問1. FizzBuzz問題を解く。
- とりあえず1以上の整数nを引数にとるメソッドを実装する感じで。
- 制限時間は5分。
- 言語はなんでもOK。
問2. FizzBuzz問題を%演算子を使わずに解く。
- だいたい問1と同じです。
- 制限時間は10分。
ちなみに
ちなみに私は下記のような感じに書きました。
fizzbuzz.rb
# 問1
def fizzbuzz(x)
res = ""
res << "Fizz" if x % 3 == 0
res << "Buzz" if x % 5 == 0
res.empty? ? x : res
end
# 問2
# 3,5で割り切れるメソッドを作りました。後は問1と同じ。
def divided_by_three?(x)
case sum_each_place(x)
when 3, 6, 9
true
else
false
end
end
def divided_by_five?(x)
ary = x.to_s.split(//).map(&:to_i)
case ary.last
when 0, 5
true
else
false
end
end
def sum_each_place(x)
ary = x.to_s.split(//).map(&:to_i)
return ary.first if ary.size == 1
sum_each_place(ary.inject(:+))
end
しかしよくよく考えたら「7で割り切れる云々」とかにルールが変わったらその都度メソッドを考えないといけないのであんまりイケてねえなと思った。
「もっと良い解き方がある!」とかリベンジしたいという方はコメントお願いします。
コメントでもコード書けるらしいので。