笔试-果园施肥
应用
某农场主管理一大片果园,fileds[i]表示第i片果林的面积,单位m^2。小布要在n天之内完成施肥工,每次选择一片果林进行施肥,并且当天施肥完成后不再进行其他施肥作业。
施肥机的能效为k,单位m^2/day,请问最小k为多少才能顺利完成任务,如果无法完成任务返回-1。
实现
str1 = input("请输入fileds的元素个数m、施肥期限天数n:").split()
MN = [int(i) for i in str1]
m = MN[0]
n = MN[1]
str2 = input("请输入果林面积fileds:").split()
fileds = [int(i) for i in str2]
def calculate_days(size, k):
day = 0
while day*k < size:
day = day + 1
return day
def calculate_k(fileds, k, n):
days = []
for i in range(0, len(fileds)):
need_day = calculate_days(fileds[i], k)
days.append(need_day)
sum = 0
for i in range(0, len(days)):
sum = sum + days[i]
if sum <= n:
print(k)
# return k
else:
k = k + 1
calculate_k(fileds, k, n)
# return calculate_k(fileds, k, n)
if n < m:
print(-1)
else:
k = 1
calculate_k(fileds, k, n)
# print(calculate_k(fileds, k, n))