Другие языки программирования и технологии

Разработайте программу для решения следующей задачи: «Купили 100 голов скота на 100 рублей. Бык стоит 10 рублей, корова

Условие не полное, язык программирования не указан, гуглом пользоваться не умеем :(

Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 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 Example_15;
Var b, k, t: Integer;
Begin
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);
End.

Сколько раз будет проверяться условие в данной программе?

Значение переменной b изменяется 11 раз (от 0 до 10), для каждого её значения переменная k изменяется 21 раз, а для каждого значения переменной k переменная t изменяется 201 раз. Таким образом, условие будет проверяться 11*21*201 раз. Но если известно количество быков и коров, то количество телят можно вычислить по формуле t = 100 - (b + k) и цикл по переменной t исключается.

Program Example_16;
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
Writeln('быков, 'b,' коров ',k,' телят',t);
End;
End.
Игорь Лазарь
Игорь Лазарь
3 602
Лучший ответ