1 条题解
-
0
思路分析
1. 任务拆解:
- 读取数字个数n
- 读取n个整数
- 将每个数字分解为单个数字
- 将所有单个数字按从大到小排序
- 输出排序后的数字序列
2. 关键点分析:
- "粉碎数字"意味着将每个数字分解为单个数字
- 使用取模运算%和除法运算/分解数字的每一位
- 将所有分解出的单个数字收集到一个数组中
- 按从大到小排序后直接输出就是最大数
3. 步骤规划: 第一步:读取数字个数n 第二步:循环读取n个整数 第三步:分解每个数字的每一位数字 第四步:将所有单个数字存入数组b 第五步:对数组b进行降序排序 第六步:输出排序后的数字序列
4. 代码对应:
cin>>n:读取数字个数- 第一个
for循环:输入原始数字 - 第二个
for循环:分解每个数字的各位数字 while(aii):循环分解数字直到为0g=aii%10:获取个位数字aii=aii/10:去掉个位数字b[ans]=g:存储单个数字sort(b+1,b+ans+1,greater<int>()):降序排序- 输出循环:输出组成最大数的数字序列
- 1
信息
- ID
- 523
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 369
- 已通过
- 178
- 上传者