美文网首页
【PAT B1023】组个最小数 (20)

【PAT B1023】组个最小数 (20)

作者: AdmondGuo | 来源:发表于2018-06-12 14:35 被阅读0次

    给定数字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

    code:

    #include <iostream>
    //贪心,尽可能的小
    int main(){
        int count[14]={0};
        int i,j;
        int n=0;
        for(i=0;i<10;i++){
            scanf("%d",&count[i]);
            n+=count[i];
        }
        if(count[0]!=0){  //有0 初始化
            for(i=1;i<10;i++){
                if(count[i]!=0){
                    printf("%d",i);
                    count[i]--;
                    break;
                }
            }
        }
        for(i=0;i<10;i++){
            if(count[i]!=0){
                for(j=0;j<count[i];j++)
                    printf("%d",i);
            }
        }
        system("pause");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:【PAT B1023】组个最小数 (20)

          本文链接:https://www.haomeiwen.com/subject/mbnleftx.html