Программа для распределения ящиков по контейнерам и грузовикам в зависимости от их количества

Смогла решить проблему для 0 ящиков, а вот что делать с 27 я не могу понять. Помогите плиз! Прикладываю исправленный код.

    package practice;
    
    import java.util.Scanner;
    
    public class TrucksAndContainers {

    public static void main(String[] args) {
        int container = 0;
        int truck = 0;
        int maxInContainer = 27;
        int maxInTruck = 12;

        Scanner scanner = new Scanner(System.in);

        //получение количество коробок от пользователя
        int boxes = scanner.nextInt();

        // TODO: вывести в консоль коробки разложенные по грузовикам и контейнерам
        // пример вывода при вводе 2
        // для отступа используйте табуляцию - \t

        if (boxes == 0) {

        } else if (boxes < maxInContainer) {
            container++;
            truck++;
            System.out.println("Грузовик: " + truck + System.lineSeparator() +
                    "\tКонтейнер: " + container);
        } else if (boxes >= maxInContainer) {
            container++;
            truck++;
            System.out.println("Грузовик: " + truck + System.lineSeparator() +
                    "\tКонтейнер: " + container);
        }

        for (int i = 1; i <= boxes; i++) {
            System.out.println("\t\tЯщик: " + i);
            if (i % (maxInContainer * maxInTruck) == 0) {
                truck += 1;
                System.out.println("Грузовик: " + truck);
            }
            if (i % maxInContainer == 0) {
                container += 1;
                System.out.println("\tКонтейнер: " + container);
            }
        }


        System.out.println("Необходимо:" + System.lineSeparator() +
                "грузовиков - " + truck + " шт." + System.lineSeparator() +
                "контейнеров - " + container + " шт.");
    }
}

Основное задание:

Есть задача написать программу, которая распределит ящики по контейнерам и грузовикам в зависимости от их количества. Программа должна выводить необходимое для этого число грузовиков и контейнеров. В каждый грузовик помещается максимум 12 контейнеров. В каждый контейнер — не более 27 ящиков. Ящики, контейнеры и грузовики пронумерованы. Не могу понять как сделать число ящиков 0 и 27.

Скрин теста: введите сюда описание изображения


Ответы (1 шт):

Автор решения: Arina

Как говориться все гениальное просто. Необходимо было просто добавить еще одно условие в код проверки количества контейнеров когда есть ящики. Вот код:

package practice;

import java.util.Scanner;

public class TrucksAndContainers {

    public static void main(String[] args) {

        int truck = 0;
        int container = 0;
        int boxesInContainer = 27;
        int containersInTruck = 12;

        Scanner scanner = new Scanner(System.in);

        //получение количество коробок от пользователя
        int boxes = scanner.nextInt();

        // TODO: вывести в консоль коробки разложенные по грузовикам и контейнерам
        // пример вывода при вводе 2
        // для отступа используйте табуляцию - \t

        if (boxes == 0) {

        } else if (boxes < boxesInContainer) {
            container++;
            truck++;
            System.out.println("Грузовик: " + truck + System.lineSeparator() +
                    "\tКонтейнер: " + container);
        } else if (boxes >= boxesInContainer) {
            container++;
            truck++;
            System.out.println("Грузовик: " + truck + System.lineSeparator() +
                    "\tКонтейнер: " + container);
        }

        for (int i = 1; i <= boxes; i++) {
            System.out.println("\t\tЯщик: " + i);

            if (i % (boxesInContainer * containersInTruck) == 0) {
                truck++;
                System.out.println("Грузовик: " + truck);
            }
            if (i % boxesInContainer == 0) {
                if (i != boxes) {
                    container++;
                    System.out.println("\tКонтейнер: " + container);
                }
            }
        }
        System.out.println("Необходимо:" + System.lineSeparator() +
                "грузовиков - " + truck + " шт." + System.lineSeparator() +
                "контейнеров - " + container + " шт.");

        /*
        Грузовик: 1
            Контейнер: 1
                Ящик: 1
                Ящик: 2
        Необходимо:
        грузовиков - 1 шт.
        контейнеров - 1 шт.
        */
    }

}
→ Ссылка