Написать программу на с++Голодная зима. Суточный рацион коровы составляет u кг сена, v кг силоса и wкг комбикорма. В хозяйстве, содержащем стадо из k голов, осталось s кг сена, t кг силоса и f кг комбикорма.. В стаде ежедневно погибает p% коров; ежедневно q% оставшегося сена сгнивает; r% силоса разворовывается колхозниками; t% комбикорма распродает зав. фермой. Когда нельзя будет кормить всех оставшихся коров по полному рациону? Какой из видов кормов кончится раньше других?
Был добавлен функционал продажи половины коров взамен на ресурсы.
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
bool YesNo;
bool getAnswer() {
cin >> YesNo;
if(YesNo) {
return true;
}
else {
return false;
}
}
int main() {
setlocale(0, ""); // В СКОБОЧКАХ ВВЕСТИ ИСХОДНЫЕ ДАННЫЕ
int dayCounter = 0;
float uDayNeed(0.5f), vDayNeed(0.5f), wDayNeed(0.5f);
// сено силос комбикорм в день
float u(110000.0f), v(100000.5f), w(200000.5f); // запасы
float k(100.0f), kDayMinus(0.3f); // коровы и -коровы% в день.
// Потом k через static_cast преобразуются в int
float uDayMinus(2.0f), vDayMinus(2.0f), wDayMinus(2.0f);
// в день проценты от запасов
for(int i = 0; i<1000000; ++i) {
++dayCounter;
if(k<1.0) {
cout << "Коровы кончились. Коровы были " << dayCounter << " дней";
break;
}
if(u<=uDayNeed*static_cast<int>(k)) {
cout << "Не хватает сена" << ", коровы прожили " << dayCounter << " дней";
cout << endl << "Предлагаем продать 50% коров и получить 50% к ресурсам";
cout << endl << "Введите 1, если согласны и 0, если не согласны: ";
if(!getAnswer()) {
cout << endl << "Вы отказались от предложения";
break;
}else {
u*=2; v*=2; w*=2; k/=2;
}}
if(v<=vDayNeed*static_cast<int>(k)) {
cout << "Не хватает силоса" << ", коровы прожили " << dayCounter << " дней";
cout << endl << "Предлагаем продать 50% коров и получить 50% к ресурсам";
cout << endl << "Введите 1, если согласны и 0, если не согласны: ";
if(!getAnswer()) {
cout << endl << "Вы отказались от предложения";
break;
}else {
u*=2; v*=2; w*=2; k/=2;
}}
if(w<=wDayNeed*static_cast<int>(k)) {
cout << "Не хватает комбикорма" << ", коровы прожили " << dayCounter << " дней";
cout << endl << "Предлагаем продать 50% коров и получить 50% к ресурсам";
cout << endl << "Введите 1, если согласны и 0, если не согласны: ";
if(!getAnswer()) {
cout << endl << "Вы отказались от предложения";
break;
}else {
u*=2; v*=2; w*=2; k/=2;
}}
// уменьшаем колво коров, запасов
u=u-uDayNeed*k-(u/100*uDayMinus);
v=v-vDayNeed*k-(v/100*vDayMinus);
w=w-wDayNeed*k-(u/100*wDayMinus);
k=k-(k/100*kDayMinus);
}
}