PAT Basic 1023
2024-08-24 23:46:25
1023 组个最小数
给定数字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
题解:这道题也是贪心策略,让小数占据高位,大数尽可能在后面(0不能为首位)。
代码如下:
#include<iostream>
#include<string> using namespace std; int main()
{
int a[];
string q;
for( int i = ; i < ; i++) cin>>a[i];
for( int i = ; i < ; i++){
if( i != && a[i] != ){
q += i + '';
a[i]--;
break;
}
}
for( int i = ; i < ; i++){
if( a[i]!= ){
while(a[i]){
q += i + '';
a[i]--;
}
}
}
cout<<q;
return ;
}
最新文章
- Result Maps collection already contains value for
- AMap编辑折线、多边形、圆
- [linux] mysql跨服务器访问, iptables设置
- mac 下更新 .bash_profile 文件
- java.lang.NoSuchMethodException
- iOS-直播开发(开发从底层做起)
- DevOps的几个场景
- VB6之阴影图层
- DC 辅域转主域
- libJPEG-turbo库使用示例代码
- WPF 10天修炼 第五天- 内容控件
- JAVA工程师-蚂蚁金服电话面试
- WebApi请求原理
- Probability和Likelihood的区别
- Android学习之基础知识十—内容提供器(Content Provider)
- 关于trim,ltrim ,rtrim 的 移除问题
- aps.net手写验证模型的方法
- Node前后端分离基本概括
- 永不改变的PCB设计黄金法则
- Java设计模式(14)责任链模式(Chain of Responsibility模式)