思路:
这道题不难。首先为了防止最高位是0(题目中已经说了,含有至少一个非零数),那么就从1的位置开始向后查直到找到一个非零数并输出,然后减少一个这个数,再从零重新遍历输出,进而一定是最小的。
AC:
#include<iostream>
using namespace std;
int main()
{
int a[10],i;
for(i=0;i<10;i++)
cin >> a[i];
for(i=1;i<10;i++)
{
if(a[i]>0)
{
cout << i;
a[i]--;
break;
}
}
for(i=0;i<10;i++)
{
while(a[i]--)
cout << i;
}
return 0;
}