TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #885

@systemswing

Системный сдвиг

Просмотры3,480Количество просмотров
Опубликован14 дек.14.12.2025, 09:43
Содержимое поста

Содержимое

Если вам вдруг нечем заняться в зимний воскресный день, предлагаю задачку. У программистов есть классическая, даже легендарная задача на собеседовании: FizzBuzz. Нужно написать программу, которая для каждого числа от 1 до 100 выдает либо Fizz (если число делится без остатка на 3), либо Buzz (если число делится без остатка на 5), либо FizzBuzz, если число делится без остатка и на 3, и на 5. Если число не делится ни на 3, ни на 5 — нужно выдать само это число. Задачу так часто давали разработчикам на интервью, что это стало уже анекдотом. А решается она настолько просто, что появились разновидности с усложнением: FizzBuzz только с двумя if; FizzBuzz с двумя if без использования переменных; вообще без if и без переменных; без использования операции взятия остатка и т.д. Есть решения невероятной сложности — например, FizzBuzz на косинусах и дискретных преобразованиях Фурье: https://habr.com/ru/articles/969856/ (осторожно, в посте для вывода используется формула Эйлера комплексными числами, я вас предупредил), или FizzBuzz на TensorFlow, на основе многослойного перцептрона со скрытым слоем: https://habr.com/ru/articles/301536/. Впрочем, ближе к нам корпоративная реализация FizzBuzz: https://habr.com/ru/companies/contentai/articles/173885/ (язык — Java; 102 файла, разложенных по 44 папкам; используются такие ООП-паттерны, как Стратегия, Абстрактная фабрика, Декоратор, Адаптер; есть тесты). Впрочем, как пишут многие критики, до настоящего ПО корпоративного уровня этому решению далеко. Вот я и предлагаю вам потренироваться — написать максимально полный набор требований к FizzBuzz. Что там должно быть? Что упускают все авторы? Давайте покажем этим программистам, что на самом деле они постоянно не учитывают в своих решениях!