🙌
PaizaのFizzBuzzをRubyで解く
FizzBuzz自体は何の問題もないのだけど、標準入力を受け取ってるのにどうもWrong Answerになるのでなんでだろうと思っていたら、
「入力は与えられません」
と説明欄に思いっきり書いてあった・・・。
問題文はよく読みましょう。
def fizz_buzz(input)
if (input % 15).zero?
'FizzBuzz'
elsif (input % 5).zero?
'Buzz'
elsif (input % 3).zero?
'Fizz'
else
input
end
end
# 自分で数値リテラル使えばいいだけだった
(1..100).each do |num|
puts fizz_buzz(num)
end
ちなみに、Rubyだと(input % 15).zero?
をこのようにも書ける。
input.modulo(15).zero?
modulo
余剰数を返すメソッドで、たとえば10.modulo(3)
は1を返す。(10÷3は余りが1になるため)
Discussion