|
发表于 2020-2-22 00:03:00
|
显示全部楼层
本帖最后由 牧木学编程 于 2020-2-22 00:13 编辑
- import math
- def judge(height,m,woods):
- #判断高度是否符合要求
- sum = 0
- for each in woods:
- sum += math.floor(each / height) #不用//的原因是因为有bug例如5 //(5/3)=2.0
- if sum >= m:
- return True
- else:
- False
- def func(m,woods):
- woods.sort()
- #先找最大的整数
- i = woods[-1] // m
- while True:
- if judge(i,m,woods):
- i += 1
- continue
- else:
- i -= 1
- break
- #答案在i和i+1之间,最长的那根木头分割的木头最多
- max = woods[-1]//i
- while True:
- temp = woods[-1] / max
- if judge(temp,m,woods) and temp > i:
- return temp
- else:
- max += 1
- if max > m:
- return i
-
- a = func(3,[2,3,4])
- print(a)
复制代码 |
|