请问n个一位数能够组成的最小的n位整数是多少。
比如,n=3,3个整数为3、1、9,那么组成的最小整数是139。
比如,n=4,4个整数为2、8、0、6,那么组成的最小整数是2068。
输入描述
第一行为一个整数n(n<10)
第二行为n个一位数
输出描述
一行,包含一个组成的最小整数。
用例输入 1
4 7 3 4 4
用例输出 1
3447
#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
//自定义函数:在sort 关键字时,使得从小到大排列
bool jude(int a,int b)
{
return a<b;
}
int main()
{
//a为输入个数,b保存哈希表的值,c为判断含0个数;
int a,b,c=2,d,answer;
cin>>a;
vector<int>v1(a);
for(int i=0;i<a;i++)
{
cin>>b;
v1[i]=b;
}
//对哈希表进行初步排序,默认从大到小
//当a<b为真,排序
sort(v1.begin(),v1.end(),jude);
//找到非0元素
for(int i=0;i<v1.size();i++)
{
if(v1[i]==0)
{
c++;
}
else{
answer=v1[i]*pow(10,a-1);
d=i;
break;
}
}
// cout<<answer;
//加上余下的值
for(int j=d+1;j<v1.size();j++)
{
answer=answer+v1[j]*pow(10,(v1.size()-c));
c++;
}
cout<<answer<<endl;
return 0;
}