Проблема «FizzBuzz» — это распространенная задача кодирования, которая включает в себя печать чисел от 1 до заданного предела, но с одной особенностью: для чисел, кратных 3, вы печатаете «Fizz» вместо числа, а для чисел, кратных 5., вы печатаете «Buzz». Для чисел, кратных 3 и 5, вы печатаете «FizzBuzz».
Вот несколько различных методов Ruby для решения проблемы FizzBuzz:
Метод 1: использование простого цикла и условных операторов
def fizzbuzz(limit)
(1..limit).each do |num|
if num % 3 == 0 && num % 5 == 0
puts "FizzBuzz"
elsif num % 3 == 0
puts "Fizz"
elsif num % 5 == 0
puts "Buzz"
else
puts num
end
end
end
fizzbuzz(100)
Метод 2. Использование тернарного оператора и объединения строк
def fizzbuzz(limit)
(1..limit).each do |num|
output = ""
output += "Fizz" if num % 3 == 0
output += "Buzz" if num % 5 == 0
puts output.empty? ? num : output
end
end
fizzbuzz(100)
Метод 3. Использование оператора case
def fizzbuzz(limit)
(1..limit).each do |num|
case 0
when num % 15
puts "FizzBuzz"
when num % 3
puts "Fizz"
when num % 5
puts "Buzz"
else
puts num
end
end
end
fizzbuzz(100)
Это всего лишь несколько примеров того, как можно решить проблему FizzBuzz в Ruby. Каждый метод использует немного другой подход, но все они дают одинаковый результат.