PAT (Basic Level) Practice 1023-组个最小数 (20分)
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805298269634560
题意:给定10个数分别表示给你的0~9数字的个数,用这些数字能够组成的最小的数,保证至少有一个非0数字。
思路:简单贪心,把最小的非0数字作为第一个数,其他从小到大排列即可
坑点:构成的数第一个数字非零
反思:注意读题,至少一个非零数字,则编码少了判断。
#include<iostream>
using namespace std;
int a[10];
int main (){
for(int i=0;i<10;i++)
cin>>a[i];
int b=-1;
for(int i=0;i<10;i++)
{
if(i!=0&&a[i]!=0){
b=i;
break;
}
}
a[b]--;
cout<<b;
for(int i=0;i<10;i++)
for(int j=0;j<a[i];j++)
cout<<i;
return 0;
}

浙公网安备 33010602011771号