界首工程建设信息网站网络推广方案范文
应用
某农场主管理一大片果园,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 = 0while day*k < size:day = day + 1return daydef 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 = 0for i in range(0, len(days)):sum = sum + days[i]if sum <= n:print(k)# return kelse:k = k + 1calculate_k(fileds, k, n)# return calculate_k(fileds, k, n)if n < m:print(-1)
else:k = 1calculate_k(fileds, k, n)# print(calculate_k(fileds, k, n))