| Задача 32. Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову - 5 рублей, за теленка - полтинник (0,5 рубля), если на 100 рублей надо купить 100 голов скота. {Обозначим через b - количество быков; k - количество коров; t- количество телят. После этого можно записать два уравнения: 10b+5k+0.5t=100 и b+k+t=100. Преобразуем их: 20b+10k+t=200 и b+k+t=100. На 100 рублей можно купить:-	не более 10 быков, т. е. 0<=b<=10
 -	не более 20 коров, т. е. 0<=k<=20
 -	не более 200 телят, т. е. 0<=t<=200. Таким образом, получаем:}
 
 program  prim3
 uses crt;
 var b, k, t: integer;
 begin
 clrscr;
 for b:=0 to 10 do
 for k:=0 to 20 do
 for t:=0 to 200 do
 if(20*b+10*k+t=200) and (b+k+t=100)
 then
 writeln('Быков  ', b, 'коров ', k ' телят ', t);
 readln;
 end.
 
 {Сколько раз будет проверяться условие в данной программе?
Значение переменной b изменяется 11 раз (от 0 до 10), для каждого ее значения переменная k изменяется 21 раз, а для каждого значения переменной k переменная  изменяется 201 раз. Таким образом, условие будет проверяться 11*21*201 раз. Но если известно количество быков и коров, то количество телят можно вычислить по формуле t=100-(b+k) и цикл по переменной t исключается.}
 
 program рriт3b;
 uses crt;
 var b, к, t: integer;
 begin
 clrscr;
 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
 writeln('Быков ' ,b,,' коров ' , k,' телят' ,t);
 end;
 readln;
 end.
 
 {При этом решении условие проверяется 11*21 раз.}
 
 
 |