Ю2.22

Задача Ю2.22. Голодная зима. Суточный рацион коровы составляет [latex]u[/latex] кг сена, [latex]v[/latex] кг силоса и [latex]w[/latex] кг комбикорма. В хозяйстве, содержащем стадо из [latex]k[/latex] голов, осталось [latex]s[/latex] центнеров сена, [latex]t[/latex] тонн силоса и [latex]f[/latex] мешков комбикорма по 50 кг. Сколько ещё дней хозяйство сможет кормить коров по полному рациону? Какой из кормов кончится раньше других?

[latex]u[/latex] [latex]v[/latex] [latex]w[/latex] [latex]s[/latex] [latex]t[/latex] [latex]f[/latex] [latex]k[/latex] Результат. Комментарий.
1 0,5 3 3 0,2 7 15 7. Комбикорм. Тест пройден.
4 7 5 6 0,6 8 13 6. Комбикорм. Тест пройден.
8 5 3,5 4 1 9 11 4. Сено. Тест пройден.
1 1 1 1 0,1 2 2 50. Сено. Силос. Комбикорм. Тест пройден.

C++:

Java:

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

Так как изначально в условии задачи данные различались по единицам измерения, я перевела их все в килограммы. Так же было предусмотрено, что количество килограмм может быть дробным положительным, в то время как количество голов в стаде — только натуральным. Для удобства вычисления я ввела дополнительные переменные [latex]a[/latex], [latex]b[/latex], [latex]c[/latex].

Затем я столкнулась с проблемой округления полученного минимального дробного числа к целому количеству дней. Возьмём первый тест для примера. Минимальное дробное количество дней — 7,77. Функция lround округляет число лишь к ближайшему целому. Поэтому мне потребовалось ввести проверку. Если разница между округлённым минимальным и неокруглённым больше нуля, то программа вычитает из полученного значения единицу. Таким образом программа не считает дни, когда корма бы хватило лишь на определённую часть суток.

Следующей задачей было выведение на экран данных о корме, который закончится первым. Тут я действовала по принципу элементарного сравнения.

В программе использован тип данных с плавающей точкой.

Для выполнения программы и проверки тестов можно воспользоваться следующим объектом (C++) и этим (Java).

Related Images:

2 thoughts on “Ю2.22

  1. Вместо неудобной для этой задачи функции lround можно было использовать floor, которая округляет значении вниз, правда формально возвращает вещественное число. Чтобы получить целое число применяем приведение типов: (int) floor (...)

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

    Задача засчитана (10 баллов).

Добавить комментарий