Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ , help me please

Феруза Абдрасулова Ученик (96), открыт 2 недели назад
Составить программу для решения следующей задачи: сколько можно купить быков, коров и телят, платя за быка 10 р., за корову — 5 р., а за теленка — 0,5 р., если на 100 р. надо купить 100 голов скота?
4 ответа
Вова Гостищев Знаток (308) 2 недели назад
моя бабушка обрадовалась бы что это всё так дешево продают
Александр Сидорченко Оракул (50189) 2 недели назад
Похоже на задачу о рюкзаке.

Решается полным перебором.

Вручную ответ: 45 90 телят, 10 1 бык, 45 9 коров.

Берётся начальное максимальное число телят, 100 телят.
Убирается по десять телят, вычитая суммы.
Оставшуюся сумму пытаться раскидать по быкам и коровам.

for (b=1;;b++){ // число быков
for (k=1;;k++){ // число коров
for(t=1; ;t++){ // число телят
sum = b*10 + k*5 + t*(0,5);
if (sum== 100){ goto end;}
sum=0;
}}}
end:
return;

Теория задачи о рюкзаке
Постановка задачи
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5


Исходные коды и примеры
https://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5
ֆհαδoᵂ☄ᴷίʆʆer Знаток (305) 1 неделю назад
#include <iostream>
using namespace std;
int main() {
int bulls, cows, calves;

for (bulls = 0; bulls <= 10; bulls++) {
int remaining = 100 - bulls * 10;

for (cows = 0; cows <= 20; cows++) {
int remaining_after_cows = remaining - cows * 5;
calves = (remaining_after_cows * 2) / 1;

if (bulls + cows + calves == 100) {
cout << "Number of bulls: " << bulls << endl;
cout << "Number of cows: " << cows << endl;
cout << "Number of calves: " << calves << endl;
return 0;
}
}
}
cout << "Not found" << endl;
return 0;
}
Похожие вопросы