题目描述

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

输入描述

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

思路:
这个题目没有难点,输入序列相当于已经给出排序后的数字
只要对第0个数字更新的时候进行特殊处理即可
其他位的数字只要从头开始扫描然后装入即可

#include<iostream>
using namespace std;
int counter[10];//输入数组
int length = 0;//统计数字个数,动态生成输出数组int find_next_min_num(int loc)
{//找到可供装入的下一个最小数字int start = 0;if(loc == 0){start = 1;}for(;start<10;++start){if(counter[start] > 0)//当前数字start还有剩余个数供装入到结果数组{--counter[start];return start;}}return -1;
}
int main()
{for(int i=0;i<10;++i){cin>>counter[i];length += counter[i];//统计有效数字个数}int* output = new int[length];//输出数组for(int i=0; i<length;++i){output[i] = find_next_min_num(i);cout<<output[i];}cout<<endl;delete[] output;return 0;
}

PAT:组个最小数(C++)相关推荐

  1. PAT 1023 组个最小数 python

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

  2. PAT (Basic Level) Practice1023 组个最小数

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

  3. 【PAT】Python 1023 组个最小数

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

  4. 狂暴者 pat basic 练习二十三 组个最小数

    心得: vector容器作为参数传递有三: 1.声明 method(vector<int> vec1),调用method(vec),这传入的是vec的拷贝,即传值,vec和vec1不关联 ...

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

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

  6. 组个最小数C语言pta,PTA|C语言:组个最小数

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

  7. C++学习之路 | PTA乙级—— 1023 组个最小数 (20分)(精简)

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

  8. B1023 组个最小数 (20分)

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

  9. PAT1023. 组个最小数

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

  10. 1023 组个最小数(附详细注释,逻辑分析)

    写在前面 实现思路 整型数组存储数字出现次数,顺序表示我们拥有数字 0.数字 1.--数字 9 的个数 找出非0的第一个数字,次数减1 循环输出剩余数字 逻辑思想再次学习! 题目较简单,15分钟a题 ...

最新文章

  1. 你还在使用 try-catch-finally 关闭资源?
  2. 别让用户发呆——设计中的防呆策略
  3. 计算机专业认证协会,我校计算机科学与技术专业接受教育部中国工程教育专业认证协会专家组现场考查...
  4. 编程入门:C语言基础知识全网超全不用到处找了!
  5. autocad.net中判断当前被激活的空间
  6. 关于ORACLE 语句中,IN 超过1000个的解决方法
  7. matlab中的 variable,matlab中的问题Missing variable or function
  8. wifi传输信息需要连接服务器,基于近场通信的WiFi传输连接方案.pdf
  9. linux下安装chrome
  10. VxWorks 6.9 内核编程指导之读书笔记 -- VxWorks kernel application (一)
  11. Java陷阱一箩筐----面试题集
  12. zbb20170919 设置eclipse myeclipse 在工程窗口 项目目录 显示代码错误提示的
  13. [Verilog] 薄膜建盤4X4 電路程式設計
  14. java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(三):解析游戏开始前的信息...
  15. adc0808的c语言编程51,51单片机驱动ADC0808电路图C51及汇编程序
  16. Thread多线程-(最容易被问到的面试题)
  17. 【知识图谱】语义网络,语义网,链接数据和知识图谱
  18. Linux笔记 #06# 在VPS上自建Git服务
  19. 2020春招补录全过程
  20. 干货,如何建立数据标签体系

热门文章

  1. django-模板语言dtl-render
  2. jquery-文档操作-标签取值-输入控件取值与赋值
  3. 在Hive查询中如何显示列名
  4. 理解SVN中trunk,branches,tags
  5. Java单链表、双端链表、有序链表实现
  6. 使用apache搭建tomcat集群
  7. Java thread(4)
  8. 【原】android获取设备基本信息
  9. 使用ACDsee在一张纸上打印多张图片
  10. Agile PLM EC Understand the BOM Publishing Process