2. В 1-й ферме 1000 овец. Каждый день количество овец этой фермы увеличивается на 1%. Если в конце месяца количество овец увеличится на 50000, то 10% овец пере- ведут на 2-ю ферму. Через сколько времени количество овец на 2-й ферме превысит 35000? (Нужно учитывать, что в одном месяце 30 рабочих дней). (Python) (Желательно с использование цикла continue)
Ответы
Программа:
Python:
def find_days(num_sheep):
days = 0
num_sheep_2 = 0
while num_sheep_2 <= 35000:
days += 1
num_sheep *= 1.01
if days % 30 != 0:
continue
num_sheep_2 += num_sheep * 0.1
num_sheep -= num_sheep * 0.1
return days
print(find_days(1000))
Объяснение:
Функция find_days принимает единственный аргумент num_sheep, который является начальным количеством овец на первой ферме. Функция использует цикл while для имитации течения времени и вычисляет количество овец на обеих фермах каждый день.
Цикл увеличивает количество дней на 1 каждую итерацию и увеличивает количество овец на первой ферме на 1% каждый день.
Если количество дней не делится на 30 (т.е. это не конец месяца), оператор continue используется для пропуска остальной части цикла и перехода к следующей итерации.
Если количество дней кратно 30 (т.е. это конец месяца), то 10% овец переводятся с первой фермы на вторую ферму, и количество овец на обеих фермах обновляется соответствующим образом.
Цикл продолжается до тех пор, пока количество овец на второй ферме не превысит 35 000, после чего функция возвращает количество дней.
В конце вызывается функцию find_days с начальным количеством овец и выводится результат.