题目

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

题目分析

已知0-9数字的个数,至少有一个非0数,求最小组合数,首位不可以是0

解题思路

  1. 贪心思想:依次取当前最小的数字作为高位
  2. 输入时用变量k,记录最小非0数字作为首位
  3. 打印首位数字k,并ts[k]--(k次数--)
  4. 遍历数组,依次取当前最小数字作为高位

注意点

因为题目已知最少有一个非0数,所以全0的情况不需要特殊考虑

Code

Code 01

#include <iostream>
#include <algorithm>
using namespace std;
int main(int argc, char * argv[]) {
int k=0,ts[10]= {0};
for(int i=0; i<10; i++) {
scanf("%d",&ts[i]);
if(ts[i]>0&&i!=0&&k==0)k=i;
}
printf("%d",k);
ts[k]--;
for(int i=0; i<10; i++) {
for(int j=0; j<ts[i]; j++)printf("%d",i);
}
return 0;
}

PAT Basic 1023 组个最⼩数 (20) [贪⼼算法]的更多相关文章

  1. PAT Basic 1023 组个最小数 (20 分)

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

  2. PAT乙级 1023. 组个最小数 (20)

    1023. 组个最小数 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定数字0-9各若干个.你可以以 ...

  3. PAT Basic 1023

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

  4. PAT 甲级 1023 Have Fun with Numbers (20 分)(permutation是全排列题目没读懂)

    1023 Have Fun with Numbers (20 分)   Notice that the number 123456789 is a 9-digit number consisting ...

  5. PAT (Basic Level) Practice 1023 组个最小数 分数 20

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

  6. PAT 乙级 1023.组个最小数 C++/Java

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

  7. PAT Basic 1049 数列的片段和 (20 分)

    给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) ...

  8. PAT Basic 1003 我要通过! (20 分)

    “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: ...

  9. PAT Advanced 1023 Have Fun with Numbers (20) [⼤整数运算]

    题目 Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, ...

随机推荐

  1. Ubuntu14.04 无法关机 SpamAssassin speech-dispatcher

    在ubuntu14.04上安装完一些包后,关闭计算机就会出现关于标题中的两个错误. 1.在软件中心卸载spamAssassin 2.运行命令: sudo update-rc.d -f speech-d ...

  2. Python MySQL Select

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  3. Docker 网络详解及 pipework 源码解读与实践

    转载自:https://www.infoq.cn/article/docker-network-and-pipework-open-source-explanation-practice/ Docke ...

  4. 基础语法-循环结构for

    基础语法-循环结构for 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.for循环格式 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句(循环体); } ...

  5. 每天一点点之laravel框架开发 - Laravel5.6去除URL中的index.php

    在项目routes/web.php文件中添加了自定义的路由后,访问localhost/index.php/aaa,可以正常访问,但是去掉index.php后,提示404 Not Found 1. 按照 ...

  6. HDU 5477: A Sweet Journey

    A Sweet Journey Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  7. EUI库 - 9 - 数据集合 - 数据容器

      DataGroup 设置一个数据源 自动创建内部所需的对象 来完成数据展示   还要设置单条数据的模板  叫ItemRenderer   继承关系 eui.List  eui.ListBase e ...

  8. sql server 日期时间数据类型

    1.日期和时间数据类型 (1)在sqlserver 2008之前,SQL Server 支持datetime 和 smalldatetime 两种日期时间数据类型.这两种数据类型日期和时间是不可分割的 ...

  9. /Array.CreateInstance创建类型为int,长度为5的数组

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...

  10. 关于SOA的架构设计案例分析

    SOA体系架构及相关技术,主要应用在企业应用集成领域,它能够以服务的方式共享和复用企业现有应用资产,保护用户IT投资,并能够以服务的方式构建新的业务流程,对企业流程进行灵活重构和优化,增强业务的敏捷性 ...