Сколько можно купить быков, коров и телят на 100 руб., если в сумме должно быть куплено 100 голов скота, а цена быка - 10 руб., цена коровы 5 руб., цена теленка - 0.5 руб.? на паскале
Обозначим Б - число быков, К - число коров, Т - число телят. Тогда можно записать, что Б+К+Т=100 (1) 10Б+5К+0.5Т=100 (2) Из (2) найдем ограничения на количества Б, К, и Т. Б ∈ [0;10], К ∈ [0;20]. Из (1) находим, что Т=100-Б-К, Т - четное (иначе сумма не будет целой). Эти ограничения позволят правильно построить циклы в программе.
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
begin for var Б:=0 to 10 do for var K:=0 to 20 do begin var T:=100-Б-K; // из уравнения (1) if T.IsEven and (10*Б+5*K+T div 2=100) then Writeln(Б,'Б, ',K,'K, ',T,'T') end end.
var b, k,t:integer; Begin for b:=0 to 100 do for k:=0 to 100 do for t:=0 to 100 do if (10*b+5*k+0.5*t=100) and (b+k+t=100) then write('b=',b, ' k=', k, ' t=', t); End. Результат:
Тогда можно записать, что
Б+К+Т=100 (1)
10Б+5К+0.5Т=100 (2)
Из (2) найдем ограничения на количества Б, К, и Т.
Б ∈ [0;10], К ∈ [0;20].
Из (1) находим, что Т=100-Б-К, Т - четное (иначе сумма не будет целой).
Эти ограничения позволят правильно построить циклы в программе.
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018
Внимание! Если программа не работает, обновите версию!
begin
for var Б:=0 to 10 do
for var K:=0 to 20 do begin
var T:=100-Б-K; // из уравнения (1)
if T.IsEven and (10*Б+5*K+T div 2=100) then
Writeln(Б,'Б, ',K,'K, ',T,'T')
end
end.
Результат
1Б, 9K, 90T
var b, k,t:integer;
Begin
for b:=0 to 100 do
for k:=0 to 100 do
for t:=0 to 100 do
if (10*b+5*k+0.5*t=100) and (b+k+t=100) then
write('b=',b, ' k=', k, ' t=', t);
End.
Результат: