题目描述
请问n个一位数能够组成的最小的n位整数是多少。
比如,n=3,3个整数为3、1、9,那么组成的最小整数是139。
比如,n=4,4个整数为2、8、0、6,那么组成的最小整数是2068。
输入格式
第一行为一个整数n(n<10)
第二行为n个一位数
输出格式
一行,包含一个组成的最小整数。
输入样例
4
7 3 4 4
输出样例
3447
#include<iostream>
#include "algorithm"
using namespace std;
int main(){
int n , i , j;
while (cin >> n)
{
int a[10];//定义一个长度为10的数组
for (int i = 0; i < n;i++)
{
cin >> a[i];//输入n个一位数
}
sort(a,a+n);//对a数组进行排序
int f = 0;//判断是否存在有效位数
int count0=0;//存储不存在有效位数时前面的无效位数(即0)有几位
for (i = 0; i < n; i++)
{
if (f)
cout << a[i];//若已经存在有效位数,不管后续是什么数字都直接输出即可
else if (!f && a[i] != 0)//若不存在有效位数并且当前位数的数字非零
{
cout << a[i];//输出当前位数字
for (j = 0; j < count0; j++)//把前面未输出的0全部输出在有效数字之后
{
cout << 0;
}
f = 1;//已经存在有效数字,故f=1
}
else if (!f && a[i] == 0)
count0++;//若不存在有效位数并且当前位数的数字为零,将这个0存储起来
}
cout << endl;
}
return 0;
}