🙌

PaizaのFizzBuzzをRubyで解く

2024/10/30に公開

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になるため)

https://docs.ruby-lang.org/ja/latest/method/Numeric/i/=25.html

Discussion