Flour Packer Problem

119
27 августа 2019, 17:10

В курсе по Java попалась задача: необходимо написать метод с тремя параметрами типа int : bigCount, smallCount и goal, где bigCount - количество пятикилограммовых мешков, smallCount - количество мешков весом 1 кг и goal, соответственно, цель. Метод должен возвращать true, если сумма кг обоих типов мешков равна цели. Но если сумма кг больше цели, true должно возвращаться только в том случае, если мешки "целые": например, если goal = 9, bigCount = 2 и smallCount = 0, то метод должен вернуть false, т.к. потому что пятикилограммовый мешок из bigCount не может быть разделен. При этом если goal = 9, bigCount = 1 и smallCount = 5, метод должен вернуть true, т.к. 1 полный мешок bigCount + 4 полных мешка smallCount = goal, и лишние полные мешки не имеют значения.

Примеры ввода-вывода:

canPack(1,0,4) - false, потому что есть только один неделимый мешок в 5 кг, а goal = 4; canPack(1,0,5) - true, т.к. goal = 5 кг и есть один неделимый мешок в 5 кг; canPack(0,5,4) - true, т.к. goal = 4 кг и есть 5 неделимых мешков по 1 кг.

Также метод должен возвращать false, если хотя бы один из параметров меньше нуля.

По-разному пробовала решить,в итоге вернулась к началу. Вот пока то, что есть:

`
public static boolean canPack(int bigCount, int smallCount, int goal) {
        if(bigCount<0|| smallCount<0||goal<0) return false;
        bigCount*=5;
        if (bigCount+smallCount>=goal) return true;
        return false;
    }`

Подскажите, пожалуйста, как решить проблему с этой "неделимостью".

Answer 1

Можно в цикле вычитать из goal вес больших мешков до тех пор, пока либо мешки не закончатся, либо вычитание не приведёт к отрицательном результату. Если результат не больше количества маленьких мешков, то возвращаем true

for (; bigCount-- > 0 && goal > 4; goal -= 5);
return goal <= smallCount;

ну и проверку на <0 в начале метода

READ ALSO
парсинг json. Приложение на Spring Boot

парсинг json. Приложение на Spring Boot

Всем привет, пытаюсь распарсить json по ссылкеХочу реализовать на Spring Boot, использую клиент okHttp и библиотеку гугла gson

130
7z степень сжатия архива

7z степень сжатия архива

ЗадачаЕсть папка на 50 гигабайт, её нужно максимально сжать

166
Некорректный вывод в Java

Некорректный вывод в Java

Решал простою задачу на Java, и столкнулся с тем что программа некорректно выводит данные

148
Hibernate merge() сохраняет дубликаты

Hibernate merge() сохраняет дубликаты

В Spring MVC приложении я имею упрощенную модель следующего видаКласс User, у которого есть список файлов:

118