一二三四五 上山打老虎

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;
}
    

posted @ 2021-01-20 11:11  黒川川  阅读(51)  评论(0)    收藏  举报