当前位置: 首页 > news >正文

PAT 1023 组个最小数(分数20)题目有bug

目录

题目描述:

题目讲解:

框架构建:

代码部分:

一个bug:


题目描述:

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

 题目讲解:

        给出若干个数想组成最小数,组合数数位越高,放的数字就应该越小。所以组合数至少从次高位开始到最低位为止,每个数位上的数字是逐渐递增的。

        为什么说是“至少”呢?因为一个组合数第一位不能是0,如果给出的数字中至少给了一个0,那么整个组合数至少前两位的数字就不可能是递增的了。

        这个时候,就必须选择一个尽可能小的数字来充当组合数的最高位。

框架构建:

        【1】如果1~9这九个数字都没给

                        输出0;直接结束程序;

        否则:

       【2】 数字0给了几个?

                【2.1】没给0

                        按照顺序输出;

                【2.2给了至少一个0】

                        找一个尽量小的数字放在最高位,其他数字按照顺序输出;

代码部分:

#include <iostream>
using namespace std;
struct com
{int number;int num;
};
int main()
{com x[10];int temp;//输入每个数字给的个数int cnt0 = 0;//查0,如果1~9这九个数字都没给,那么将输出0之后结束程序.for (int i = 0; i < 10; i++){cin >> temp;x[i].number = i;x[i].num = temp;//赋值if (i>0&&temp == 0)cnt0++;//统计}//如果1~9这几个数字都为0,那么结果应该输出0.if (cnt0 == 9){cout << 0;return 0;}//判断是否需要从后面向前补位.//如果含有数字0,那么就需要从后面补位.//如果没给数字0,直接按顺序输出,就是最小的数.//下面是没给数字0的情况if(x[0].num==0)for (int i = 0; i < 10; i++){if (x[i].num != 0){for (int j = 0; j < x[i].num; j++)cout << x[i].number;}}//下面是给了数字0的情况.else if(x[0].num!=0){//cout << "code has run to here!" << endl;int not0 = -1;//标记.看看至少需要哪个数字来补位for (int i = 1; i < 10; i++)if (x[i].num != 0){not0 = i;x[i].num -= 1;//这个非零数字原来有x[i].num个,//现在其中一个放到了组合数最前面,所以现在有x[i].num-1个.//cout << x[i].number << endl;break;}cout << x[not0].number;//先输出补位的数字for (int i = 0; i < 10; i++){if (x[i].num!=0)for (int j = 0; j < x[i].num; j++)cout << x[i].number;//其他数字按照其个数输出.}}return 0;
}

一个bug:

        这道题题目描述和检测机制是不严谨的。题目没有考虑“如果1~9这九个数字,如果他们的个数都输入为0,那么应该输出0” 这种情况。

        在评测机上运行的时候,对这个bug的判断与否竟然没有影响答案正确与否,乐

相关文章:

PAT 1023 组个最小数(分数20)题目有bug

目录 题目描述&#xff1a; 题目讲解&#xff1a; 框架构建&#xff1a; 代码部分&#xff1a; 一个bug&#xff1a; 题目描述&#xff1a; 给定数字 0-9 各若干个。你可以以任意顺序排列这些数字&#xff0c;但必须全部使用。目标是使得最后得到的数尽可能小&#xff08;…...

QML 中的 5 大布局

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 QML 中,可以通过多种方式对元素进行布局 - 手动定位、坐标绑定定位、锚定位(anchors)、定位器和布局管理器。 说到 anchors,可能很多人都不太了解,它是 QML 中一个非常重要的概念,主要提供了一种相…...

使用Python进行数据分析——线性回归分析

大家好&#xff0c;线性回归是确定两种或两种以上变量之间互相依赖的定量关系的一种统计分析方法。根据自变量的个数&#xff0c;可以将线性回归分为一元线性回归和多元线性回归分析。一元线性回归&#xff1a;就是只包含一个自变量&#xff0c;且该自变量与因变量之间的关系是…...

我眼中的柔宇科技

关注、星标公众号&#xff0c;直达精彩内容来源&#xff1a;技术让梦想更伟大作者&#xff1a;李肖遥很早就知道了柔宇科技&#xff0c;当时是因为知道创始人刘自鸿&#xff0c;23岁清华本硕毕业&#xff0c;26岁获斯坦福大学电子工程博士学位&#xff0c;历时不超过3年&#x…...

Allegro如何快速把视图居中显示操作指导

Allegro如何快速把视图居中显示操作指导 用Allegro进行PCB设计的时候,为了方便检查和设计,时常需要将视图居中显示。一般地,会使用鼠标的中键进行放大和缩小,或者使用Zoom in和Zoom out来调整视图 Allegro还支持快速将视图居中 具体操作如下 点击View...

搜索相关功能

一、进入搜索页面 1.1 在pages下创建搜索页面为&#xff1a;search 1.2 在index.vue中点击进入搜素页面 onNavigationBarButtonTap(e){if(e.floatleft){uni.navigateTo({url:/pages/search/search})}},1.3 在pages.json中配置搜索页面头部 {"path" : "pages/…...

【从零开始制作 bt 下载器】一、了解 torrent 文件

【从零开始制作 bt 下载器】一、了解 torrent 文件写作背景了解 torrent 文件认识 bencodepython 解析 torrent 文件解密 torrent 文件结尾写作背景 最先开始是朋友向我诉说使用某雷下载结果显示因为版权无法下载&#xff0c;找其他的下载器有次数限制&#xff0c;于是来询问我…...

SystemVerilog-时序逻辑建模(5)多个时钟和时钟域交叉

数字硬件建模SystemVerilog-时序逻辑建模&#xff08;5&#xff09;多个时钟和时钟域交叉数字门级电路可分为两大类&#xff1a;组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点&#xff0c;在后面会作为单独的主题处理。组合逻辑描述了门级电路&#xff0c;其中逻…...

基本中型网络的仿真(RYU+Mininet的SDN架构)-以校园为例

目录 ​​​​​​​具体问题可以私聊博主 一、设计目标 1.1应用场景介绍 1.2应用场景设计要求 网络配置方式 网络技术要求 网络拓扑要求 互联互通 二、课程设计内容与原理 &#xff08;1&#xff09;预期网络拓扑结构和功能 &#xff08;1&#xff09;网络设备信息 …...

西北工业大学大学物理(II)期末试题选填解析2021-2022

2 金属薄片&#xff0c;就暗示了载流子是电子了。3 熟练掌握左右手即可。4 又是位移电流。6 感应电场。随时间变化着的磁场能在其周围空间激发一种电场&#xff0c;它能对处于其中的带电粒子施以力的作用&#xff0c;这就是涡旋电场&#xff0c;又叫感生电场。涡旋电场是非保守…...

【USB】windows热插拔通知接口分析

文章目录接口介绍概述过滤器介绍举例接收通知创建窗口参考文档接口介绍 概述 window提供了RegisterDeviceNotificationW方法&#xff0c;可以用来监听设备的热插拔事件。 HDEVNOTIFY RegisterDeviceNotificationW([in] HANDLE hRecipient,[in] LPVOID NotificationFilter,[in]…...

CMake入门

课程地址 文档地址 CMake可以用于所有的编程语言 HelloWorld 编写一个C文件&#xff1a; //hello.cpp #include <iostream>int main() {std::cout << "hello, world" <<std::endl;return 0; }手动编译&#xff1a; c hello.cpp书写CMakeList…...

python中一种编写config文件并及时更新的方法

contents0. Intro1. config.py2. 调用以及更新0. Intro 在pytorch或者其他深度学习框架中&#xff0c;有许多超参数需要调整&#xff0c;包括learning_rate&#xff0c;training_data_path等&#xff0c;因此编写一个config文件统一存放这些参数&#xff0c;方便调用/查看/修改…...

基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包

基于Windows下离线安装当前最新Arduino ESP32 SDK&#xff08;2.0.7&#xff09;固件开发包✨写这篇的文章的初衷&#xff0c;是由于在前几天想通过离线一键安装包方式实现升级安装&#xff0c;结果发现解压后&#xff0c;可以找到开发板&#xff0c;但是无法上传代码&#xff…...

Android 9.0 app添加校验锁(输入密码才能进入app)

1.概述 在9.0的系统rom定制化开发中,在一些产品开发中,需要对app启动校验密码,输入密码后,才可以进app,所以说对这种 开发需求,首先找到启动app的关键点以后,在加入限制app启动的弹窗,输入密码,密码正确后在进入app,实现流程 就是这样,接下来看如何实现的 2.app添加校…...

注意力机制详解系列(二):通道注意力机制

&#x1f468;‍&#x1f4bb;作者简介&#xff1a; 大数据专业硕士在读&#xff0c;CSDN人工智能领域博客专家&#xff0c;阿里云专家博主&#xff0c;专注大数据与人工智能知识分享。 &#x1f389;专栏推荐&#xff1a; 目前在写CV方向专栏&#xff0c;更新不限于目标检测、…...

动态规划-规划兼职工作

动态规划-规划兼职工作 一、问题描述 你打算利用空闲时间来做兼职工作赚些零花钱。这里有 n 份兼职工作&#xff0c;每份工作预计从 startTime 开始到 endTime 结束&#xff0c;报酬为 profit。给你一份兼职工作表&#xff0c;包含开始时间 startTime&#xff0c;结束时间 en…...

Redis学习笔记(二)Redis基础(基于5.0.5版本)

一、Redis定位与特性 Redis是一个速度非常快的非关系数据库&#xff08;non-relational database&#xff09;&#xff0c;用 Key-Value 的形式来存储数据。数据主要存储在内存中&#xff0c;所以Redis的速度非常快&#xff0c;另外Redis也可以将内存中的数据持久化到硬盘上。…...

Ancaonda常用cmd命令总结

1) 查看以创建的虚拟环境&#xff1a; conda info --envs / conda env list   2) 激活创建的环境&#xff1a;conda activate xxx(虚拟环境名称)   3) 退出激活的环境&#xff1a;conda deactivate   4) 删除一个已有虚拟环境&#xff1a;conda remove --name(已创建虚拟…...

yolov5_reid【附代码,行人重识别,可做跨视频人员检测】

该项目利用yolov5reid实现的行人重识别功能&#xff0c;可做跨视频人员检测。 应用场景&#xff1a; 可根据行人的穿着、体貌等特征在视频中进行检索&#xff0c;可以把这个人在各个不同摄像头出现时检测出来。可应用于犯罪嫌疑人检索、寻找走失儿童等。 支持功能&#xff1a…...

STM32单片机学习(28) —— STM32的SPI外设

文章目录概述SPI通信的移位机制&#xff08;以bit为单位&#xff09;SPI外设框图第一部分&#xff1a;数据通路SPI通信的数据帧格式SPI外设移位机制&#xff08;以字节为单位&#xff09;第二部分&#xff1a;主机时钟生成器SPI通信时钟频率与传输速率第三部分&#xff1a;主从…...

用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑

用C语言解决‘换硬币’问题&#xff1f;我来教你如何调试和验证你的循环逻辑 当你第一次面对"换硬币"这类组合问题时&#xff0c;那种既兴奋又困惑的感觉我至今记忆犹新。作为C语言初学者&#xff0c;理解多重循环的运作机制就像在迷宫中寻找出口——每次你以为找到了…...

AI智能体到底强在哪?为什么大家开始从“养龙虾”转向“养马”

那么AI智能体的核心能力是什么&#xff1f; 1、理解需求 它能分析你的真实意图&#xff0c;而不是只看表面的文字&#xff0c;比如让它整理这个月的消费情况&#xff0c;它明白之后&#xff0c;会读取账单&#xff0c;做分类统计&#xff0c;生成总结&#xff0c;最后输出图表。…...

C语言双端队列完整实现:一行代码吃透头尾操作,算法效率拉满

一、为什么C语言实现双端队列&#xff0c;是数据结构的必学天花板&#xff1f;在C语言数据结构里&#xff0c;队列、栈都是基础中的基础&#xff0c;但真正能把灵活度、效率、内存管理三者揉到一起的&#xff0c;还得是双端队列&#xff08;deque&#xff09;。普通队列只能一头…...

pan-baidu-download:百度网盘多线程下载加速器架构解析与性能优化指南

pan-baidu-download&#xff1a;百度网盘多线程下载加速器架构解析与性能优化指南 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download pan-baidu-download是一款基于Python开发的百度网盘命令行下载…...

Spring Security OAuth2 /oauth/token 401原因与Content-Type规范

1. 问题现场还原&#xff1a;一个看似简单却让开发停摆两小时的/oauth/token请求刚接手一个老项目做安全加固&#xff0c;第一件事就是验证OAuth2密码模式的token获取流程。我照着文档写了一条curl命令&#xff1a;curl -X POST http://localhost:8080/oauth/token回车执行&…...

深度解析网络设备权限管理工具:中兴光猫工厂模式与Telnet服务完整指南

深度解析网络设备权限管理工具&#xff1a;中兴光猫工厂模式与Telnet服务完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 在当今网络设备管理领域&#xff0c;获取设备完整控制…...

Hindsight API参考:REST接口完整文档

Hindsight API参考&#xff1a;REST接口完整文档 【免费下载链接】hindsight Hindsight: Agent Memory That Learns 项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight Hindsight是一个强大的Agent Memory系统&#xff0c;提供了全面的REST API接口&…...

开源ELM327 OBD-II适配器:从硬件设计到多协议固件实现全解析

1. 项目概述&#xff1a;开源ELM327 OBD适配器如果你对汽车诊断、数据监控或者嵌入式开发感兴趣&#xff0c;那么自己动手做一个OBD-II适配器绝对是个能让你学到很多东西的硬核项目。今天要聊的&#xff0c;就是一个完全开源的、基于NXP LPC1517微控制器的ELM327兼容OBD适配器。…...

如何在浏览器中一键解密所有加密音乐文件:Unlock-Music完全指南

如何在浏览器中一键解密所有加密音乐文件&#xff1a;Unlock-Music完全指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地…...