PAT(Basic Level) 组个最小数 (20)
2016-03-23 13:31
169 查看
给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。
现给定数字,请编写程序输出能够组成的最小的数。
输入格式:
每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
输出样例:
水题, 只要找个能用的最小数字放在首位, 其它的数字按从小到大入坑就行了.
现给定数字,请编写程序输出能够组成的最小的数。
输入格式:
每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
2 2 0 0 0 3 0 0 1 0
输出样例:
10015558
水题, 只要找个能用的最小数字放在首位, 其它的数字按从小到大入坑就行了.
#include<bits/stdc++.h> using namespace std; int canUse[10]; char ans[55]; int main() { int i; //freopen("1023.in", "r", stdin); for(i=0;i<10;i++)cin>>canUse[i]; memset(ans, 0, sizeof(ans)); for(i=1;i<10;i++) if(canUse[i]!=0) { ans[0]='0'+i; canUse[i]--; break; } int cnt=1; for(i=0;i<10;i++) while(canUse[i]!=0) { ans[cnt++]=i+'0'; canUse[i]--; } ans[cnt]='\0'; cout<<ans; return 0; }
相关文章推荐
- 关于 JSTL c:out 对 XML html 自动转义 转义的禁用
- tar命令和ssh配合使用
- ado.net EF CodeOnly/CodeFirst设计模式实例演示
- Servlet/JSP提供了一个实用的技术
- Back to Underworld(lightoj 1009)
- Shape文件导入featuredataset要素数据集
- java堆栈详解
- java代码块(初始化块)
- 关于UITableView — cell上点击按钮变换
- zjnu1757Excellent (数学公式)
- PAT(Basic Level) 1015 德才论 (25)
- IOS 2D绘图
- asp.net如何定时执行任务
- C++ 列表初始化
- PAT(Basic Level) 1005继续(3n+1)猜想 (25)
- iOS xib中制作圆角按钮
- 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?
- jquery遍历table的tr获取td的值
- 调整JSP和servlet的一些非常实用的方法
- Oracle 行转列