解题思路: 使用数列内置函数append、pop等


注意事项:range的使用时,里面应该是数值类型    

参考代码:

n=int(input())
str01=list(map(int,input().split()))
total=0
str01.sort() # 一开始便从小到大排序 找出最小的两个值
for i in range(len(str01)-1):
    # 应在排除前将最小的两项和加到数列末尾
    str01.append(str01[0]+str01[1])
    # 记录此时的费用 即此次还未删除
    total+=str01[0]+str01[1]
    # 除去前两项最小的
    # 由于在第一次删除最小的时第二个最小的移动到第一位 故删除两次才行
    str01.pop(0)
    str01.pop(0)
    # 将添加和删除后的数组重新排序  再次循环!
    str01.sort()
print(total)


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论