admin管理员组文章数量:1794759
2022全国高校计算机能力挑战赛决赛python组编程计挑赛决赛4
学期末某班级举行了趣味运动会,结束后根据学生的所获得的积分(积分为0-9之间的整数)进行奖励,为了增加奖励的趣味性,采用如下规则进行奖励: 1.每位同学至少获得1个奖励 2.任意相邻两位同学之间,获得积分较多的同学的奖励要高于积分数较少的同学(每次增加以1个奖励计),若相邻两位同学之间的积分数相同则无需考虑。 注意: 请按照规则进行计算,并非积分最高的同学所获奖励数最多编程输入同学的积分数(为便于测试,限定积分数中元素的个数设置为5-50之间),计算最终最少应准备的奖品数总额。要求输出每位同学的奖品数和奖品数的总额。 输入格式 int类型,使用空格隔开 输出格式: 字符串形式 输入样例1: 请输入积分榜: 9 7 2 4 5 7 2 2 6 输出样例1: 奖励详情如下: [3,2,1,2,3, 4, 1,1,2] 奖励总额为: 19万元. 输入样例2: 请输入积分榜: 1 5 7 4 5 4 9 输出样例2: 奖励详情如下: [1,2,3,1, 2, 1, 2] 奖励总金额为:12万元.
scores = list(map(int, input('请输入积分榜: ').split())) n = len(scores) rewards = [1] * n # 初始化每个同学的奖励 for i in range(1, n): if scores[i] > scores[i - 1]: rewards[i] = rewards[i - 1] + 1 for i in range(n - 2, -1, -1): if scores[i] > scores[i + 1] and rewards[i] <= rewards[i + 1]: rewards[i] = rewards[i + 1] + 1 print(f'奖励详情如下: {rewards}') print(f'奖励总额为: {sum(rewards)}万元.')版权声明:本文标题:2022全国高校计算机能力挑战赛决赛python组编程计挑赛决赛4 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686834613a108321.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论