本文主要是介绍【晴问算法】入门篇—贪心算法—最大组合整数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
现有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
#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;
}
这篇关于【晴问算法】入门篇—贪心算法—最大组合整数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!