酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

7952: 【C3】游戏积分 时间限制: 2 Sec 内存限制: 128 MB 提交: 0 解决: 45 [提交][状态][命题人:zhangyinwei] 题目描述 在某个奇幻游戏中,玩家击败怪物后会获得积分,这些积分分为奇数和偶数两种类型。奇数的积分代表魔法能量,需要按升序排列以进行某种仪式;偶数的积分代表物理能量,需要按降序排列以解锁宝箱。你作为游戏管理员现在需要处理这些积分记录,按照要求输出。 输入 第一行输入n (1<=m<=1000000) 第二行输入n个整数a (-1000000<=a<=1000000) 输出 按照要求排序后输出一行,包含排序后的n个整数,数与数之间以一个空格分开。 样例输入 5 1 2 3 4 5 样例输出 1 3 5 4 2 提示 先输出奇数再输出偶数

# 游戏积分排序解决方案 这个问题需要将输入的整数分成奇数和偶数两类,分别按照不同的规则排序后合并输出。 ## 解决思路 1. 将输入数组分成奇数数组和偶数数组 2. 对奇数数组进行升序排序 3. 对偶数数组进行降序排序 4. 合并两个数组,奇数在前偶数在后 ## Python实现代码 ```python n = int(input()) numbers = list(map(int, input().split()) odds = [] evens = [] for num in numbers: if num % 2 != 0: odds.append(num) else: evens.append(num) # 奇数升序排序 odds.sort() # 偶数降序排序 evens.sort(reverse=True) result = odds + evens print(' '.join(map(str, result))) ``` ## 需要注意的逻辑点 1. 判断奇偶性时使用取模运算,注意负数取模结果 2. 排序时确保奇数是升序而偶数是降序 3. 合并数组时要保持奇数在前偶数在后的顺序 [2025-04-12 17:08:17 | AI写代码神器 | 233点数解答]

相关提问