PAT 1023 组个最小数
思路:
要组成最小数,先要找到第一位数字,因为0不能放在首位位置,for要从1遍历到9;先输出第一位数字后,其所在数组要减一,再循环a[0]输出全部0,最后双重for循环输出其余
#include <bits/stdc++.h>
using namespace std;
int a[10];
int main(){
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
int index=0;//标记第一位数字
for(int i=1;i<10;i++){
if(a[i]>0){
index=i;
break;
}
}
printf("%d",index);//输出第一位数字
a[index]--;
for(int i=0;i<a[0];i++){
printf("0");//存在0
}
for(int i=index;i<10;i++){
if(a[i]>0){
for(int j=0;j<a[i];j++)
printf("%d",i);
}
}
return 0;
}