• 1023 组个最小数 (20 分)


    给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。

    现给定数字,请编写程序输出能够组成的最小的数。

    输入格式:

    输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。

    输出格式:

    在一行中输出能够组成的最小的数。

    输入样例:

    2 2 0 0 0 3 0 0 1 0
    

    输出样例:

    10015558

    分析:这个题主要就是首位和排序
     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int main()
     5 {
     6     int a[10],b[100],sum=0;
     7     for(int i=0;i<10;i++)
     8     {
     9         cin>>a[i];
    10         sum+=a[i];
    11         getchar();
    12     }
    13         for(int i=1;i<10;i++)
    14         {
    15             if(a[i]!=0)
    16             {
    17                 b[0]=i;
    18                 a[i]--;
    19                 break;
    20             }
    21         }
    22 
    23     int sum2=sum;
    24     int k=0;
    25     int s=1;
    26 
    27     while(sum!=1)
    28         {
    29             if(a[k]!=0)
    30             {
    31                 b[s]=k;
    32                 a[k]--;
    33                 sum--;
    34                 s++;
    35             }
    36             else
    37                 k++;
    38         }
    39    // cout<<s<<endl;
    40     for(int i=0;i<sum2;i++)
    41         cout<<b[i];
    42 }
  • 相关阅读:
    在Windows下生成SSH文件
    git常用命令总结
    小Q的歌单
    在vmware下安装Ubuntu16-04
    hexo-next博客中mathjax显示问题解决
    可乐复制问题
    hexo-next博客添加评论功能
    hexo-next博客添加在线联系功能
    tableau desktop
    tableau desktop
  • 原文地址:https://www.cnblogs.com/ygjojo/p/10759009.html
Copyright © 2020-2023  润新知