美文网首页
组个最小数

组个最小数

作者: Bing_o_o | 来源:发表于2019-08-21 09:45 被阅读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

    C++实现

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        
        int count[10];
        for(int i = 0; i < 10; i++) {
            scanf("%d", &count[i]);
        }
        
        for(int i = 1; i < 10; i++) {
            if(count[i] > 0) {
                printf("%d", i);
                count[i]--;
                break;
            }
        }
        
        for(int i = 0; i < 10; i++) {
            for(int j = 0; j < count[i]; j++) {
                printf("%d", i);
            }
        }
        
        printf("\n");
        
        return 0;
    } 
    

    相关文章

      网友评论

          本文标题:组个最小数

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