PAT (Basic Level) Practice 1070 结绳 Python

思路:
根据题意,每一次要将上一次连接好的绳子与当前折好的绳子连接,再整体对折,得到一次结果,
我们需要循环重复这个过程。
而题目要求我们输出最大长度,这时我们想到绳子的长度越长时,对折一次,失去的长度就越多,
如果我们从最短的绳子开始对折连接,一直到最后一个也就是最长的,那么这个过程中连接好的绳子的总长度减少的就是最少的。
排序: 将输入的绳子长度排序,由短到长
循环: 重复连接步骤得到最后的绳子长度
代码如下:
import math
input()
in_2=list(map(int,input().split()))
in_2.sort()
out_1=in_2[0]/2+in_2[1]/2
for i in range(2,len(in_2)):out_1=out_1/2+in_2[i]/2
print(math.floor(out_1))
提交结果:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
