题目描述
现有0~9中各个数的个数,将它们组合成一个整数,求能组合出的最大整数。
输入描述
在一行中依次给出0-9中各个数的个数(所有个数均在0-100之间)。数据保证至少有一个数的个数大于0。
输出描述
输出一个整数,表示能组合出的最大整数。
样例1
输入
1 0 2 0 0 0 0 0 0 1
输出
9220
解释
存在1个0、2个2、1个9,因此能组合出的最大整数是9220
cpp
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100;
int a[MAXN];
int main(){
for(int i=0;i<=9;i++){
cin >> a[i];//输入0-9的个数,1 0 2 0 0 0 0 0 0 1
}//0有1个,1有0个,2有2个,3有0个,4有0个,...9有1个
for(int i=9;i>=0;i--){//数字大的放高位,才会使得输出最大
while(a[i] > 0){//比如a[9]=1,说明9有1个,打印出9,a[8]=0,说明没有8,跳过
printf("%d",i);
a[i]--;//a[i]的数是多少,就要打印多少次i
}
}
return 0;
}