难点: 首位不为0
解决方案:首先输出首位不为0的number
#include<cstdio>
int main() {
int a[10];
for(int i=0;i<10;i++) {
scanf("%d", &a[i]);
}
for(int i=1;i<10;i++) { // 输出首位不为0的number
if(a[i]!=0) {
printf("%d", i);
a[i]--;
break;
}
}
for(int i=0;i<10;i++) {
for(int j=0;j<a[i];j++) {
printf("%d", i);
}
}
printf("\n");
return 0;
}
该问题的拓展: 将输入改为给定数字,将其排列,使得最后得到的数尽可能小(首位不为0),可见:https://blog.csdn.net/gosline/article/details/106406803