Главная » Статьи » Задачи по программированию |
Задача Антанаса Баранаускаса [Pascal]
Сколько можно купить быков, коров и
телят, платя за быка 10 р., за корову— 5 р.,а за теленка — полтинник, если на 100 рублей надо купить 100 голов скота? Условие этой задачи можно описать при помощи системы уравнений: где б — число быков; к — число коров; т — число телят. Обе части первого уравнения умножим на 2 (т.е. деньги будем считать в полтинниках): Мы имеем систему двух уравнений с тремя неизвестными. В общем случае такая система уравнений имеет бесконечное число решений. Однако в данном случае число решений конечно. Во-первых, решениями могут быть только неотрицательные числа. Во-вторых, возможные значения. Неизвестных ограничены и сверху: за 100р. нельзя купить более 10 быков (даже если покупать только одних быков), более 20 коров и более 200 телят. Таким образом, Поэтому задачу можно без труда решить, перебрав все возможные значения неизвестных и проверив, удовлетворяют ли они уравнению. Чтобы программа была более экономной, число телят,пользуясь вторым уравнением, выразим через два других неизвестных: т = 100— (б+к) и будем проверять, перебирая значения переменных б и к, только первое уравнение. Мы составили программу:var b,(* быки *)k, (* коровы *)t (* телята *):integer; begin for b:=0 to 10 do for k:=0 to 20 do begin t:=100 - (b + k); if 20*b+10*k+t=200 then begin writeln ('Bblkov',b:4); writeln ('Kopov',k: 4); writeln ('TelyaT',t: 4); end; end; Readln; end. Выполнив эту программу, ЭВМ напечатала такие результаты: БЫ КОВ: 1 КОРОВ: 9 ТЕЛЯТ: 90 Надеюсь задача была интересной и вы нашли для себя что то новое. Оставляйте комментарии добавляйте свои интересные задачи. Спасибо что посетили наш сайт. С уважением администрация сайта Solution.3dn.ru Скажи спасибо, тыкни на рекламу =) | |
Просмотров: 6326
| Теги: |
Всего комментариев: 0 | |