1. 程式人生 > >組個最小數 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)

組個最小數 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)

題目描述

給定數字0-9各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數儘可能小(注意0不能做首位)。例如:
給定兩個0,兩個1,三個5,一個8,我們得到的最小的數就是10015558。

現給定數字,請編寫程式輸出能夠組成的最小的數。

輸入描述:

每個輸入包含1個測試用例。每個測試用例在一行中給出10個非負整數,順序表示我們擁有數字0、數字1、……數字9的個數。整數間用一個空
格分隔。10個數字的總個數不超過50,且至少擁有1個非0的數字。

輸出描述:

在一行中輸出能夠組成的最小的數。

輸入例子:

2 2 0 0 0 3 0 0 1 0

輸出例子:

10015558

#include<iostream> using namespace std; int main() { int a[10],b[50],k=0; int i,j; for(i=0;i<10;i++) cin>>a[i]; for(i=1;i<10;i++)   for(j=0;j<a[i];j++)      b[k++]=i; if(a[0]==0) {      for(j=0;j<k;j++)         cout<<b[j];     cout<<endl; } else{      cout<<b[0];      for(i=0;i<a[0];i++)          cout<<'0';      for(j=1;j<k;j++)          cout<<b[j];      cout<<endl; } return 0; }