Реализация правила FizzBuzz

Проверяйте делимость на 15 раньше отдельных условий для 3 и 5. Иначе число, кратное обоим делителям, попадёт в первую подходящую ветку и не даст FizzBuzz.

Короткий ответ

Что ответить на собеседовании

Проверяйте делимость на 15 раньше отдельных условий для 3 и 5. Иначе число, кратное обоим делителям, попадёт в первую подходящую ветку и не даст FizzBuzz.

Подробный разбор

Ответ с пояснениями

Условие

Создайте функцию, принимающую целое число n и выводящую последовательность от 1 до n. При этом вместо числа выводятся специальные строки: если текущее значение делится на 3 — выводится «Fizz», если делится на 5 — выводится «Buzz», а если одновременно делится и на 3, и на 5 — выводится «FizzBuzz».

Ответ

Проверяйте делимость на 15 раньше отдельных условий для 3 и 5. Иначе число, кратное обоим делителям, попадёт в первую подходящую ветку и не даст FizzBuzz.

function fizzBuzz(n) {
  for (let value = 1; value <= n; value++) {
    console.log(value % 15 === 0 ? 'FizzBuzz' :
      value % 3 === 0 ? 'Fizz' : value % 5 === 0 ? 'Buzz' : value);
  }
}

Контракт предполагает конечное целое n; для n < 1 цикл ничего не выводит. Ноль не входит в последовательность, поскольку начало равно 1. Алгоритм выполняет O(n) шагов и использует O(1) дополнительной памяти, не считая самой консоли.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее