|
|
发表于 2019-12-23 23:15:08
|
显示全部楼层
# 有两艘船,载重量分别是C1,C2
# 需要运载n个集装箱,集装箱的重量分别是
# Wi(i=0,....,n-1) 且所有集装箱的重量不超过C1+C2
# 却编程确定是否有可能将所有集装箱全部装入两艘船
def isLoadable(C1: int, C2: int, listWi: list):
listWi.sort(reverse=True)
for i in listWi:
if C1 >= 0 and C2 >= 0:
if C2>C1:
C1,C2=C2,C1
C1 = C1 -i
if C1 <0 or C2<0:
return '承载失败'
return '承载成功'
if __name__ == '__main__':
C1, C2, listWi = None, None, None
try:
C1 = int(input('请输入第一艘船的载重(整数):'))
C2 = int(input('请输入第二艘船的载重(整数):'))
listWi = list(eval(input('请输入集装箱的重量(如:10,23,10):')))
except TypeError:
print('输入的格式有误,请重新输入')
print(C1,C2,listWi)
if C1 and C2 and listWi:
print(isLoadable(C1, C2, listWi))
|
|