アレンジを加える
CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 57/88。
チャレンジ
簡単前のレッスンでは、デフォルトの除数 3 と 5 を使用して数値をループする FizzBuzz プログラムを作成しました。今回は、デフォルト引数を使用して除数をカスタマイズできるように変更を加えましょう。
fizzbuzz メソッドを、3 つの引数を受け取るように修正してください:
n- チェックする数値(必須)fizz_divisor- "Fizz" のための除数(任意、デフォルトは3)buzz_divisor- "Buzz" のための除数(任意、デフォルトは5)
このメソッドは、割り切れるかどうかをチェックする際に、ハードコードされた値の代わりにこれらのカスタム除数を使用する必要があります。
3 行の入力を受け取ります:
- 上限値
n - fizz の除数
- 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