LoginSignup
1
1

More than 5 years have passed since last update.

rubyでfizzbuzz問題

Last updated at Posted at 2017-10-23

rubyの勉強のために。
一応3と5以外も指定できるようにメソッドで。
ツッコミどころありましたらお願いします。

def fizz_buzz(inp, fi=3, bu=5)
  fizz = (inp % fi).zero?
  buzz = (inp % bu).zero?
  if fizz && buzz
    'FizzBuzz'
  elsif fizz
    'Fizz'
  elsif buzz
    'Buzz'
  else
    inp
  end
end

max_num = 30

(1..max_num).each do |num|
  puts fizz_buzz(num)
end

# 1
# 2
# Fizz
# 4
# Buzz
# Fizz
# 7
# 8
# Fizz
# Buzz
# 11
# Fizz
# 13
# 14
# FizzBuzz
# 16
# 17
# Fizz
# 19
# Buzz
# Fizz
# 22
# 23
# Fizz
# Buzz
# 26
# Fizz
# 28
# 29
# FizzBuzz


一応テストも。

require 'minitest/autorun'

class TestFizzBuzz < Minitest::Test
  def test_fizz_buzz
    assert_equal '1', fizz_buzz(1)
    assert_equal '2', fizz_buzz(2)
    assert_equal 'Fizz', fizz_buzz(3)
    assert_equal '4', fizz_buzz(4)
    assert_equal 'Buzz', fizz_buzz(5)
    assert_equal 'FizzBuzz', fizz_buzz(15)
  end
end
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1