Короткий ответ
FizzBuzz — классическая задача, которой проверяют базовые навыки программирования: циклы, условия и работу с остатком от деления. Для каждого числа от 1 до n нужно вывести FizzBuzz, если оно делится и на 3, и на 5; Fizz, если только на 3; Buzz, если только на 5; иначе — само число в виде строки.
Как это работает подробнее
Решение строится на простом цикле с проверками делимости, а главное в нём — корректный порядок условий.
- Правила вывода. Для каждого числа i от 1 до n выбирается ровно один вариант ответа: FizzBuzz, Fizz, Buzz или само число строкой.
- Оператор остатка. Делимость проверяется через
%:i % 3 == 0истинно, когда число кратно трём, аналогично для пяти. - Порядок веток. Комбинированное условие «делится и на 3, и на 5» обязано идти первым, иначе число 15 попадёт в ветку Fizz.
- Вывод числа. В ветке else число преобразуется в строку через
str(i), чтобы результат был однородным списком.
Пример кода
Классическое решение FizzBuzz
def fizz_buzz(n):
result = []
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
result.append('FizzBuzz')
elif i % 3 == 0:
result.append('Fizz')
elif i % 5 == 0:
result.append('Buzz')
else:
result.append(str(i))
return result
print(fizz_buzz(10))Что использовать на практике
- Простой цикл. Аккуратного цикла с
elifдостаточно для собеседования — не усложняй решение без необходимости. - Первая проверка. Ставь комбинированное условие делимости на 3 и 5 в начало, чтобы числа вроде 15 не получали Fizz.
- Функция со списком. Возвращай список строк из функции — так решение легко проверить на разных значениях n.