Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову - 5 рублей, за бычка 50 копеек, если на 100 рублей надо купить 100 голов скота.
Если бык стоит 10 руб., то на 100 руб. можно купить всего 100/10
Целочисленное деление используем для range, т.к. range нужны аргументы целого типа, а плюс 1, чтобы использовать числа от до 10 включительно
Пределы для коров и телят так же (только с телятами 0,5 представили как 1/2, при делении перевернули и на 1 делить не стали (100/0,5 = 100/(1/2) = 100*2/1 = 100*2))
Всего должно быть 100 голов скота
быки + коровы + телята = 100
Всего надо купить на 100 руб.
количество быков * стоимость быков + количество коров * стоимость коров + количество телят * стоимость телят = 100
Должны быть выполнены оба условия, поэтому И (and)
valgrisa
Пределы для коров и телят так же (только с телятами 0,5 представили как 1/2, при делении перевернули и на 1 делить не стали (100/0,5 = 100/(1/2) = 100*2/1 = 100*2))
valgrisa
Формула из условий задачи: всего должно быть 100 голов скота быки+коровы+телята=100 всего надо купить на 100 руб количество быков*стоимость быков+количество коров*стоимость коров+количество телят*стоимость телят=100. Должны быть выполнены оба условия, поэтому И(and)
valgrisa
Одно равно это оператор присваивания в питон, два рано это логический оператор равенства
Answers & Comments
Ответ:
for i in range(3) :
--if not (100 - 19 * i) % 9 :
----print('быков', i)
----print('коров', (100 - 19 * i) // 9)
----print('бычков', (100 - 10 * i - 5 * (100 - 19 * i) // 9) * 2)
19 это максимально возможное количество голов, которые можно купить на 100 рублей, если брать только коров и быков (18 коров и один бык)
бычок= 100-бык-корова
решим уравнение
Бык- i
Корова - к
10i+5k+0.5(100-1-k)=100//10; 5; 0.5 от стоимости животных 10i+5k+50-0.5i-0.5k=100
9.5i+4.5k-50;
19i+9k=100 ->
k=(100-19i)/9
Корова – k
10i+5k+0.5(100-i-k)=100 //10; 5; 0.5 – стоимости животных
10i+5k+50-0.5i-0.5k=100;
9.5i+4.5k=50;
19i+9k=100 ⇒ k=(100-19i)/9
Ответ:
for b in range(100//10+1):
for k in range(100//5+1):
for t in range(100*2+1):
if (10*b+5*k+t*0.5==100) and (b+k+t==100):
print(b,k,t)
Объяснение:
отступы на скрине
Всего надо купить на 100 руб.
Если бык стоит 10 руб., то на 100 руб. можно купить всего 100/10
Целочисленное деление используем для range, т.к. range нужны аргументы целого типа, а плюс 1, чтобы использовать числа от до 10 включительно
Пределы для коров и телят так же (только с телятами 0,5 представили как 1/2, при делении перевернули и на 1 делить не стали (100/0,5 = 100/(1/2) = 100*2/1 = 100*2))
Всего должно быть 100 голов скота
быки + коровы + телята = 100
Всего надо купить на 100 руб.
количество быков * стоимость быков + количество коров * стоимость коров + количество телят * стоимость телят = 100
Должны быть выполнены оба условия, поэтому И (and)