/** * Интерфейс для взаимодействия с аппаратной частью банкомата. */ interface Hardware { /** * Возвращает массив с количеством купюр по номиналам 50, 100, 500, 1000, 5000. * Метод работает медленно и создает шум. * * @return массив, где каждый элемент соответствует количеству купюр определенного номинала. * Например, [10, 20, 30, 40, 50] означает: * - 10 купюр номиналом 50 рублей * - 20 купюр номиналом 100 рублей * - 30 купюр номиналом 500 рублей * - 40 купюр номиналом 1000 рублей * - 50 купюр номиналом 5000 рублей */ int[] getBillsCounts(); /** * Загружает в бокс выдачи указанные купюры. * * @param billsCounts массив с количеством купюр по номиналам [50, 100, 500, 1000, 5000]. * Например, [0, 1, 0, 2, 0] означает: * - 0 купюр номиналом 50 рублей * - 1 купюру номиналом 100 рублей * - 0 купюр номиналом 500 рублей * - 2 купюры номиналом 1000 рублей * - 0 купюр номиналом 5000 рублей */ void giveBills(int[] billsCounts); } /** * Класс для реализации логики работы банкомата. * Тут нужно писать код */ class MyATM { /** * Аппаратная часть банкомата. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }
class ToInfinity { public static void main(String[] args) { //впишите код сюда for (int i = start; i <= start + 1; i++) { /* тут должен быть бесконечный цикл, менять ничего нельзя*/ } } }
Какой функционал ты выберешь для первого smoke-suite стримингового сервиса (Netflix, Amazon и т.д.)?
Как настроить размер thread pool для параллельных HTTP запросов?
Какие бывают индексы в базах данных?
Как обработать загрузку файла (картинки) через HTTP-запрос в Spring MVC и сохранить на диск?
Какая Java используется на проекте? Что изменилось при переходе с 17 на 21?
Условие Сложность: MEDIUM Дана закодированная строка следующего формата: k[encoded_text] Здесь k — это число повторений строки encoded_text. Строка гарантированно имеет корректный формат: нет лишних пробелов, скобки всегда правильные и т.д. Необходимо декодировать строку Пример: Input: "3[a]2[bc]" Output: "aaabcbc" Input: "3[a2[c]]" Output: "accaccacc" Input: "2[abc]3[cd]ef" Output: "abcabccdcdcdef"
Как у вас обычно строится изучение новых технологий? Какие источники используете?
Какие ORM использовали? Когда Hibernate, когда JDBC? Были ли Liquibase/Flyway?
Метод с @Transactional бросает IllegalStateException — транзакция откатывается, хотя нужно сохранить данные. В чём проблема и как исправить?
Какие два варианта сбора метрик существуют (push и pull)?
Какие виды изоляции транзакций есть в Transaction Manager?
Почему в проекте применялось два брокера сообщений — Kafka и RabbitMQ?
Без Hibernate, нативный SQL — как реализовать оптимистичную блокировку вручную?
Приходилось ли оптимизировать параметры JVM и Garbage Collector?
Гарантии доставки сообщений в Kafka (at-most-once, at-least-once, exactly-once) и порядок сообщений
Что такое абстракция в ООП? Как вы её понимаете?
Опишите рабочий процесс с использованием AI-инструментов от получения задачи до деплоя.
Расскажи, что происходит в текущей системе (опиши схему AS-IS)?