• 组个最小数 (20)


     

    时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

    题目描述

    给定数字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
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main(void){
        int a[10] , b[51] , len = 0;
        for(int i=0;i<10;i++){
            cin >> a[i];
            for(int j=0;j<a[i];j++){
                b[len] = i;
                len++;
            }
        }
        for(int i=0;i<len;i++){
            if(b[i] !=0){
                int temp = b[0];
                b[0] = b[i];
                b[i] = temp;
                break;
            }
        }
        for(int i=0;i<len;i++){
            cout << b[i];
        }
        return 0;
    }


  • 相关阅读:
    JAVA环境变量的配置
    中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
    1009. 说反话 (20)
    akoj-1162-计算表达式
    akoj-1153-p次方求和
    akoj-1055-矩阵乘法
    akoj-1076-Encoding
    C语言程序设计进阶 翁恺 第4周编程练习
    akoj-1272-字母统计
    akoj-1267-独木舟上的荡漾
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8508547.html
Copyright © 2020-2023  润新知