Гид по технологиям

FizzBuzz — как решить задачу и примеры на 5 языках

4 min read Программирование Обновлено 08 Apr 2026
FizzBuzz — решение и примеры на 5 языках
FizzBuzz — решение и примеры на 5 языках

Иллюстрация задачи FizzBuzz

Условие задачи

Напишите программу, которая печатает числа от 1 до 100 с такими правилами:

  1. Если число делится на 3 — печатать “Fizz” вместо числа.
  2. Если число делится на 5 — печатать “Buzz” вместо числа.
  3. Если число делится и на 3, и на 5 — печатать “FizzBuzz”.

Попробуйте придумать решение с циклами и условными операторами прежде чем смотреть реализацию.

Важно: проверяйте делимость в правильном порядке — сначала кратность 15, затем 3 и 5 отдельно, иначе числа типа 15 дадут неверный вывод.

Подход к решению

Шаги для решения:

  1. Запустите цикл от 1 до 100.
  2. Числа, делящиеся и на 3, и на 5, делятся на 15. Сначала проверьте i % 15 == 0 и выведите “FizzBuzz”.
  3. Затем проверьте делимость на 3: i % 3 == 0 → вывести “Fizz”.
  4. Затем проверьте делимость на 5: i % 5 == 0 → вывести “Buzz”.

Примечание: оператор деления по модулю (%) показывает остаток от деления. Например, 25 % 5 == 0 означает, что 25 делится на 5.

Псевдокод

for number from 1 to 100:  
  if (number is divisible by 3 and 5) then:  
    print("FizzBuzz")  
  if (number is divisible by 3) then:  
    print("Fizz")  
  if (number is divisible by 5) then:  
    print("Buzz")

C++: программа для решения FizzBuzz

Ниже — программа на C++:

// C++ program to implement the FizzBuzz problem  
#include   
using namespace std;  
  
int main()  
{  
 for (int i=1; i<=100; i++)  
 {  
 // Numbers that are divisible by 3 and 5  
 // are always divisible by 15  
 // Therefore, "FizzBuzz" is printed in place of that number  
 if (i%15 == 0)  
 {  
 cout << "FizzBuzz" << " ";  
 }  
 // "Fizz" is printed in place of numbers  
 // that are divisible by 3  
 else if ((i%3) == 0)  
 {  
 cout << "Fizz" << " ";  
 }  
 // "Buzz" is printed in place of numbers  
 // that are divisible by 5  
 else if ((i%5) == 0)  
 {  
 cout << "Buzz" << " ";  
 }  
 // If none of the above conditions are satisfied,  
 // the number is printed  
 else  
 {  
 cout << i << " ";  
 }  
 }  
  
return 0;  
}

Вывод:

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz

Python: программа для решения FizzBuzz

# Python program to implement the FizzBuzz problem  
  
for i in range(1, 101):  
  
    # Numbers that are divisible by 3 and 5  
    # are always divisible by 15  
    # Therefore, "FizzBuzz" is printed in place of that number  
    if (i%15 == 0):  
        print("FizzBuzz", end="  ")  
  
    # "Fizz" is printed in place of numbers  
    # that are divisible by 3  
    elif (i%3 == 0):  
        print("Fizz", end="  ")  
  
    # "Buzz" is printed in place of numbers  
    # that are divisible by 5  
    elif(i%5 == 0):  
        print("Buzz", end="  ")  
  
    # If none of the above conditions are satisfied,  
    # the number is printed  
    else:  
        print(i, end="  ")  

Вывод:

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz

JavaScript: программа для решения FizzBuzz

// JavaScript program to implement the FizzBuzz problem  
  
for (let i=1; i<=100; i++) {  
  
// Numbers that are divisible by 3 and 5  
 // are always divisible by 15  
 // Therefore, "FizzBuzz" is printed in place of that number  
 if (i%15 == 0) {  
 document.write("FizzBuzz" + " ");  
 }  
  
// "Fizz" is printed in place of numbers  
 // that are divisible by 3  
 else if ((i%3) == 0) {  
 document.write("Fizz" + " ");  
 }  
  
// "Buzz" is printed in place of numbers  
 // that are divisible by 5  
 else if ((i%5) == 0) {  
 document.write("Buzz" + " ");  
 }  
  
// If none of the above conditions are satisfied,  
 // the number is printed  
 else {  
 document.write(i + " ");  
 }  
  
}

Вывод:

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz

Java: программа для решения FizzBuzz

// Java program to implement the FizzBuzz problem  
  
public class Main  
{  
 public static void main(String args[])  
 {  
 for (int i=1; i<=100; i++)  
 {  
 // Numbers that are divisible by 3 and 5  
 // are always divisible by 15  
 // Therefore, "FizzBuzz" is printed in place of that number  
 if (i%15==0)  
 {  
 System.out.print("FizzBuzz"+" ");  
 }  
  
// "Fizz" is printed in place of numbers  
 // that are divisible by 3  
 else if (i%3==0)  
 {  
 System.out.print("Fizz"+" ");  
 }  
  
// "Buzz" is printed in place of numbers  
 // that are divisible by 5  
 else if (i%5==0)  
 {  
 System.out.print("Buzz"+" ");  
 }  
  
// If none of the above conditions are satisfied,  
 // the number is printed  
 else  
 {  
 System.out.print(i+" ");  
 }  
  
}  
 }  
}

Вывод:

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz

C: программа для решения FizzBuzz

// C program to implement the FizzBuzz problem  
#include   
  
int main()  
{  
 for (int i=1; i<=100; i++)  
 {  
 // Numbers that are divisible by 3 and 5  
 // are always divisible by 15  
 // Therefore, "FizzBuzz" is printed in place of that number  
 if (i%15 == 0)  
 {  
 printf("FizzBuzz ");  
 }  
 // "Fizz" is printed in place of numbers  
 // that are divisible by 3  
 else if ((i%3) == 0)  
 {  
 printf("Fizz ");  
 }  
 // "Buzz" is printed in place of numbers  
 // that are divisible by 5  
 else if ((i%5) == 0)  
 {  
 printf("Buzz ");  
 }  
 // If none of the above conditions are satisfied,  
 // the number is printed  
 else  
 {  
 printf("%d ", i);  
 }  
 }  
  
return 0;  
}

Вывод:

1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz

Быстрый старт: “Hello, World!”

Программа “Hello, World!” — первый шаг при изучении нового языка программирования. Это самый простой пример, который помогает проверить среду разработки и понять базовый синтаксис.

Альтернативные подходы и оптимизации

  • Функциональный стиль: собрать результат в список/строку с использованием map/листа и вывести один раз (уменьшает количество операций вывода).
  • Использовать конкатенацию строк: если (i%3==0) s += “Fizz”; if (i%5==0) s += “Buzz”; если s пустая — печатать i, иначе s. Это убирает необходимость проверки i%15.
  • Табличный подход: заранее заполнить массив замен для диапазона или использовать словарь кратности → строка для гибких правил.

Пример компактной реализации на Python (шпаргалка):

for i in range(1, 101):
    s = ("Fizz"*(i%3==0)) + ("Buzz"*(i%5==0))
    print(s or i, end=" ")

Когда стандартный алгоритм не сработает (примеры)

  • Нечётные требования: если диапазон не с 1 до 100, а, например, от -50 до 50 — убедитесь, что делимость и порядок проверок сохраняется.
  • Неполные входные данные: если приходят нецелые числа, нужно явно документировать поведение (например, игнорировать дробные).
  • Большие диапазоны: при миллиардах итераций важна оптимизация вывода и использования памяти.

Критерии приёмки (тесты)

  1. Тест базового диапазона: 1..100 — ожидаемый стандартный вывод.
  2. Краевые значения: 3 → Fizz, 5 → Buzz, 15 → FizzBuzz.
  3. Отрицательные и нулевые значения: 0 → FizzBuzz (0 делится на любое ненулевое число) — решите ожидаемое поведение заранее.
  4. Нестандартные шаги/шкала: диапазон с любыми границами должен работать при сохранении логики.

Краткая методика тестирования

  • Написать юнит-тест, проверяющий набор вход→выход для небольшого диапазона.
  • Проверить границы и случайные значения.
  • Тестировать производительность при увеличении диапазона и оценивать время вывода.

1‑строчный глоссарий

  • % (модуль): операция, дающая остаток от деления. Если a % b == 0, то a делится на b без остатка.

Резюме

FizzBuzz — компактная задача, которая показывает базовые навыки: циклы, ветвления и проверки делимости. Важно проверять кратность 15 в первую очередь или использовать конкатенацию строк без отдельной проверки 15. Реализации на разных языках отличаются синтаксисом, но логика одинаковая.

Важные выводы:

  • Сначала проверяйте кратность 15, чтобы корректно выводить “FizzBuzz”.
  • Для производительности сокращайте число операций вывода (собирать строку или список).
  • Уточняйте требование по нулю и отрицательным числам в спецификации.

Спасибо за чтение — теперь попробуйте реализовать FizzBuzz в выбранном языке и расширить правила (например, добавить “Bazz” для 7).

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Массивы в Bash: синтаксис и примеры
Программирование

Массивы в Bash: синтаксис и примеры

Сбросить страницу «Для вас» в TikTok
Социальные сети

Сбросить страницу «Для вас» в TikTok

Создать GIF из YouTube — GIFs.com
Руководство

Создать GIF из YouTube — GIFs.com

Как сделать карусель Instagram в InDesign
Дизайн

Как сделать карусель Instagram в InDesign

Как объединить PDF на Mac
Mac

Как объединить PDF на Mac

Как примерить тату в Photoshop
Дизайн

Как примерить тату в Photoshop