Задача: Покончим с эпидемией!

Создайте функцию, которая принимает среднедневное количество случаев излечения (recovers), среднедневное количество новых случаев заболевания (new_cases), текущее количество активных случаев (active_cases)и возвращает количество дней, которое потребуется для достижения нулевого количества случаев.

Пример:

end_corona(4000, 2000, 77000) ➞ 39

end_corona(3000, 2000, 50699) ➞ 51

end_corona(30000, 25000, 390205) ➞ 79

Примечание:

  • Число выздоравливающих в день recovers всегда будет больше, чем ежедневное число new_cases.
  • Будьте предусмотрительными и округляйте необходимое количество дней в большую сторону.

Варианты решений:

from math import ceil

def end_corona(recovers, new_cases, active_cases):
	return ceil(active_cases/(recovers - new_cases))
def end_corona(recovers, new_cases, active_cases):
	count = 0
	while active_cases > 0:
		active_cases -= recovers
		active_cases += new_cases
		count += 1
	return count
end_corona = lambda r,n,a: (a // (r - n)) + 1
def end_corona(recovers, new_cases, active_cases):
	return round(active_cases / (recovers - new_cases) + 0.5)

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *