1023. 组个最小数 (20)-PAT乙级真题
2016-07-22 14:29
218 查看
1023.
组个最小数 (20)
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。
输入格式:
每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥
有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
2
2 0 0 0 3 0 0 1 0
输出样例:
10015558
组个最小数 (20)
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。
输入格式:
每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥
有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
2
2 0 0 0 3 0 0 1 0
输出样例:
10015558
#include <iostream> using namespace std; int main() { int a[10]; for (int i = 0; i < 10; i++) { cin >> a[i]; } int t; for (int i = 1; i < 10; i++) { if (a[i] != 0) { cout << i; t = i; break; } } for (int i = 0; i < a[0]; i++) { cout << 0; } for (int i = 0; i < a[t] - 1; i++) { cout << t; } for (int i = t + 1; i < 10; i++) { for (int k = 0; k < a[i]; k++) { cout << i; } } return 0; }
相关文章推荐
- Leetcode 101. Symmetric Tree (Easy) (cpp)
- 相机检测
- <nginx.conf> nginx设置用户权限
- Android屏幕适配全攻略(最权威的官方适配指导)
- 工作中对异常的处理
- 移动通信的语音与数据漫游
- FZU-2148-Moon Game
- Opencv与dlib联合进行人脸关键点检测与识别
- 1026. 程序运行时间(15)-PAT乙级真题
- 游戏中学会撸代码:这些编程学习网站不容错过
- android 自定义控件用的定时CountDownTimer
- C# 扩展方法
- ERROR
- linux LVM 学习笔记(二)
- 项目管理必知项,做项目经理必须知道的几个事情
- android里TextView加下划线的几种方式
- 二分法-Raising Modulo Numbers
- ORA-01858:在要求输入数字处找到非数字字符
- 预编译 作用域例子
- shell 中 getopts 用法