# 題目:
# 某公司每天能完成 x 單位工作量,共有 n 項工作要完成。
# 請問至少要幾天才能做完?
# 例如:
# 每天完成量 = 3
# 總量 = 17
# 則答案為 6 天(因為 3×5=15 <17,3×6=18 ≥17)。
# 思路:
# 天數越多 → 工作越可能完成,
# 這是一個「單調可行性」問題。
def min_days(w,ws):
lo,hi = 0,ws
ans = hi
while lo<=hi:
m = (lo+hi)//2
if m * w ==ws:
ans = m
return ans
elif m*w>ws:
ans = m
hi = m -1
else:
lo = m +1
return ans
print(min_days(3, 17)) # 6
print(min_days(5, 25)) # 5
print(min_days(15, 150)) # 10
print(min_days(105, 150000000000000000150000000000000))
# Output:
# 6
# 5
# 10
# 1428571428571428572857142857143
沒有留言:
張貼留言