Menu
Coddy logo textTech

アレンジを加える

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 57/88。

challenge icon

チャレンジ

簡単

前のレッスンでは、デフォルトの除数 3 と 5 を使用して数値をループする FizzBuzz プログラムを作成しました。今回は、デフォルト引数を使用して除数をカスタマイズできるように変更を加えましょう。

fizzbuzz メソッドを、3 つの引数を受け取るように修正してください:

  • n - チェックする数値(必須)
  • fizz_divisor - "Fizz" のための除数(任意、デフォルトは 3
  • buzz_divisor - "Buzz" のための除数(任意、デフォルトは 5

このメソッドは、割り切れるかどうかをチェックする際に、ハードコードされた値の代わりにこれらのカスタム除数を使用する必要があります。

3 行の入力を受け取ります:

  1. 上限値 n
  2. fizz の除数
  3. buzz の除数

1 から n までループし、更新した fizzbuzz メソッドを 3 つすべての引数とともに呼び出します。各結果を出力してください。

例えば、入力が以下の場合:

10
2
3

出力は以下のようになります:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

入力が以下の場合:

15
3
5

出力は以下のようになります:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

自分で試してみよう

# Read input
n = gets.chomp.to_i

# Method from previous lesson
def check_divisible(number, divisor)
  return number % divisor == 0
end

# Create the fizzbuzz method
def fizzbuzz(n)
  if check_divisible(n, 3) && check_divisible(n, 5)
    return "FizzBuzz"
  elsif check_divisible(n, 3)
    return "Fizz"
  elsif check_divisible(n, 5)
    return "Buzz"
  else
    return n.to_s
  end
end

# Loop through numbers from 1 to n and print the result
(1..n).each do |i|
  puts fizzbuzz(i)
end

基礎のすべてのレッスン