Решение:
5х+10y+0.5z=100, где x,y,z - целые и не отрицательные>0 (натуральные вроде, уже не помню...)
Это плоскость - алгебраическая поверхность первого порядка: в декартовой системе координат плоскость может быть задана уравнением первой степени. Соответсвенно все решения - точки с целыми координатами, принадлежащие этой плоскости.
Частное решение:
Берём X=10
Тогда 10y+0.5z=50
z=(50-10y)*2
z=100-20y
Берём y=1, тогда z=80
Итого: 10 коров, 1 бык, 80 телят. (одного быка хватит на 10 коров?

)
проверка:
5*10+10*1+80*0.5=50+10+40=100
Так как цена быка самая большая, то перебор всех частных решений начинаем подставляя Y=1,2,3 и т.д.
потом перебираем X=1,2,3 и т.д (при каждом y) находя Z (z должно получатся целым, неотрицательным>0, остальные решения отбрасываем). Думаю алгоритм ясен.
Готовый рабочий код, выдающий все возм. решения:
PHP код:
<?
for ($y=1;$y<10;$y++)
{
for ($x=1;$x<20;$x++)
{
$z=(100-5*$x-10*$y)*2;
if ($z==round($z) and $z>0) echo "коров:".$x.", быков:".$y.", телят:".$z." проверка:".($x*5+10*$y+0.5*$z)."<br>";
}
}
?>
- ну а дальше выбирайте оптимальное
UP: забыл про второе условие: что всего должно быть 100 голов скота, т.е. x+y+z=100 - подправьте код сами вообщем...
Ответ:
коров:9, быков:1, телят:90 проверка:100
P.S. Задачка на пересечение двух плоскостей (как известно решение, это прямая, если плоскости не параллельны, не совпадают, а пересекаются). В нашем случае это отрезок, а так как X,Y,Z целые, ненулевые, положительные, то на этой прямой есть лишь одна точка, имеющая все три координаты целые значения, не нулевые, положительные.