Menu
CoddyTech

Thêm biến tấu

Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 57 trên 88.

challenge icon

Thử thách

Dễ

Trong bài học trước, bạn đã tạo một chương trình FizzBuzz lặp qua các số bằng các ước số mặc định là 3 và 5. Bây giờ, hãy thêm điểm mới bằng cách cho phép tùy chỉnh các ước số thông qua tham số mặc định.

Sửa phương thức fizzbuzz để nhận ba đối số:

  • n - số cần kiểm tra (bắt buộc)
  • fizz_divisor - ước số dùng cho "Fizz" (không bắt buộc, mặc định là 3)
  • buzz_divisor - ước số dùng cho "Buzz" (không bắt buộc, mặc định là 5)

Phương thức này nên dùng các ước số tùy chỉnh thay cho các giá trị cố định khi kiểm tra tính chia hết.

Bạn sẽ nhận ba dòng đầu vào:

  1. Giới hạn trên n
  2. Ước số fizz
  3. Ước số buzz

Lặp từ 1 đến n và gọi phương thức fizzbuzz đã cập nhật với cả ba đối số. In ra từng kết quả.

Ví dụ, nếu đầu vào là:

10
2
3

Đầu ra sẽ là:

1
Fizz
Buzz
Fizz
5
FizzBuzz
7
Fizz
Buzz
Fizz

Nếu đầu vào là:

15
3
5

Đầu ra sẽ là:

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

Tự làm thử

# 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

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Ruby online