最少停车数(C 语言)

题目描述

特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。

统计停车场最少可以停多少辆车,返回具体的数目。

输入描述

整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。

输出描述

整型数字字符串,表示最少停车数目。

用例

输入1,0,1
输出2
说明1个小车占第1个车位
输入1,1,0,0,1,1,1,0,1
输出3
说明1个货车占第1、2个车位

给下面的代码添加注释(不要改动原本的代码):

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 定义停车场车位最大数量常量
#define MAX_LEN 1000int main() {// 初始化输入字符串数组,用于存储用户输入的以逗号分隔的字符序列char input[MAX_LEN];// 读取标准输入(即从控制台读取一行数据),并去掉末尾换行符fgets(input, MAX_LEN, stdin);input[strcspn(input, "\n")] = '\0';// 初始化整型数组cars,用于存储转换为整数形式的车辆状态int cars[MAX_LEN];int count = 0; // 记录有效输入的数量// 使用strtok函数按逗号分割输入字符串,并将每个数字串转换为整数存入cars数组char *token = strtok(input, ",");while (token != NULL) {cars[count++] = atoi(token); // 将当前token转换为整数并存入cars数组token = strtok(NULL, ","); // 继续处理下一个token}// 初始化临时变量tmplen用于计算连续停车长度,res用于记录最少可以停多少辆车int tmplen = 0;int res = 0;// 遍历整个cars数组for (int i = 0; i < count; i++) {// 当前车位有车(用1表示)if (cars[i] == 1) {tmplen++; // 增加连续停车长度计数// 判断是否到达最后一个车位或者下一个车位是空的(用0表示)if (i == count - 1 || cars[i + 1] == 0) {// 根据停车长度计算能够停放的车辆数(卡车占3个车位,小车或货车各占1或2个车位)res += tmplen / 3; // 先添加能完全停放的卡车数量if (tmplen % 3 != 0) { // 若剩余车位不足3个,则增加一辆车res++;}tmplen = 0; // 重置临时停车长度计数器}}}// 输出最少可以停多少辆车的结果printf("%d\n", res);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rollup + Ts

Rollup Ts RollupTs demo 一、文件配置 | - src | | - utils | | | - .ts | | - .babelrc | | - main.js | | - style.css | - package.json | - rollup.config.js | - tsconfig.json二、插件下载 rollup // rollup 基本的包 typescript // ts 包 rollup/plug…

如何做bug分析 ?bug分析什么 ? 为什么要做bug分析 ?

每当我们完成一个版本测试时&#xff0c;总会在测试报告中添加一些分析bug的指标 &#xff0c;主要用于分析在测试过程中存在的问题 。但是在分析的过程中你就可能遇到如下的问题 &#xff1a; 我应该分析那些指标呢 &#xff1f;每一个具体的指标该如何分析 &#xff1f;它能说…

Vue3学习——computed、watch、watchEffect

computed 与Vue2.x中computed配置功能一致写法 import {computed} from vuesetup(){...//计算属性——简写let fullName computed(()>{return person.firstName - person.lastName})//计算属性——完整let fullName computed({get()return person.firstName - perso…

算法——模拟

1. 什么是模拟算法&#xff1f; 官方一点来说 模拟算法&#xff08;Simulation Algorithm&#xff09;是一种通过模拟现实或抽象系统的运行过程来研究、分析或解决问题的方法。它通常涉及创建一个模型&#xff0c;模拟系统中的各种事件和过程&#xff0c;以便观察系统的行为&a…

Redis缓存一致性问题(自用记录)

背景 在开发过程中&#xff0c;redis缓存技术被大范围应用。由于现在的系统大多是分布式的&#xff0c;高并发的&#xff0c;redis和传统的数据库&#xff0c;存在数据不一致的问题。 解决方案 本文主要探讨两者数据不一致的解决方案&#xff1a; 给缓存设置过期时间&#x…

dell戴尔电脑灵越系列Inspiron 15 3520原厂Win11系统中文版/英文版

Dell戴尔笔记本灵越3520原装出厂Windows11系统包&#xff0c;恢复出厂开箱预装OEM系统 链接&#xff1a;https://pan.baidu.com/s/1mMOAnvXz5NCDO_KImHR5gQ?pwd3nvw 提取码&#xff1a;3nvw 原厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office办公软件、MyD…

Jmeter接口测试 ,这应该是全网最详细的教程了

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、Jmeter 的使用步骤 打开Jmeter 安装包&#xff0c;进入\bi…

postman-使用Postman的模拟服务来模拟(mock)后端数据,完成前端模拟API调用

最近项目上比较忙&#xff0c;任务多时间紧&#xff0c;导致后端开发任务繁多&#xff0c;无法及时开发完毕&#xff0c;但是前端同学已经把对应功能开发完成&#xff0c;需要进行前后端联调来验证API及一些交互问题&#xff1b;这不能因为后端的进度来影响前端的工作完成情况&…

【Linux进程】冯·诺依曼体系结构以及操作系统的深入理解

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.冯诺依曼体系结构特…

kafka和ZK的关系

zk相当于是kafka的一个基础设施 Kafka是一种高吞吐量、可扩展的分布式发布订阅消息系统&#xff0c;ZooKeeper是一个分布式协调服务&#xff0c;用于管理和协调分布式系统中的各种资源 Zookeeper&#xff1a;管理broker&#xff0c;consumer 创建broker后&#xff0c;向zk注册…

适用于生物行业的样本管理系统

在生物样本管理系统的应用中&#xff0c;我们首先需要了解生物样本的特点和要求。生物样本具有多样性和易变性&#xff0c;需要被妥善保存和跟踪&#xff0c;以确保其质量和可用性。 因此&#xff0c;一个有效的生物样本管理系统需要具备以下特点&#xff1a; 全面性&#xff1…

Spring Event的原理以及缺陷

原理:Spring 事件监听机制及原理分析 - Admol - 博客园 (cnblogs.com) 使用bug:Spring Event 别瞎用&#xff01;从我司的悲剧中&#xff0c;我总结了6 条最佳实践&#xff01;-腾讯云开发者社区-腾讯云 (tencent.com)

2024最新任推邦邀请码是什么

任推邦是一款非常受欢迎的推广APP&#xff0c;任推邦邀请码是【222222】获得现金奖励和提成奖励用户可以通过邀请好友加入来获取收益。2024最新的任推邦邀请码是【222222】&#xff0c;小编已经给大家整理好了他趣许多的邀请码&#xff0c;想要领取奖励的小伙伴快来和小编一起了…

聚合函数()不要随意加空格

报错&#xff1a;1630 - FUNCTION link.SUM does not exist. Check the Function Name Parsing and Resolution section in the Reference Manual 解决方法&#xff1a;count、avg、sum等函数后紧随的()之间不能加空格&#xff0c;去掉这个空格即可&#xff0c;因为count()、a…

js 监听元素是否出现在可视区域--IntersectionObserver

观察者模式监听判断dom元素是否在可视区域内 本项目是使用vue3的写法。 1.IntersectionObserver IntersectionObserver可以用来自动监听元素是否进入了设备的可视区域之内&#xff0c;而不需要频繁的计算来做这个判断。由于可见&#xff08;visible&#xff09;的本质是&…

融中穿刺路径角度评估的C++技术实现

消融模型的三维渲染 我们以肝部为例&#xff0c;通常肝部在做消融手术规划时有几个步骤。 一三维重建&#xff1a; 对器官进行图像分割&#xff1b; 对肿瘤的原发区域GTV进行勾画。 二穿刺路径的规划&#xff1a; 路径规划当中有几个约束&#xff1a;穿刺深度、危及器官的…

OpenAI推出首个AI视频模型Sora:重塑视频创作与体验

链接&#xff1a;华为OD机考原题附代码 Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着…

SpringBoot快速整合Thymeleaf实现文件上传案例

SpringBoot快速整合Thymeleaf实现文件上传案例 文章目录 SpringBoot快速整合Thymeleaf实现文件上传案例1. 创建工程2. pom.xml文件2. application.yml 配置3. 前端fileupload.html4. 后端Controller 本案例环境: SpringBoot: 2.3.0.RELEASEJDK: 1.8前端模板&#xff1a; thymel…

【PHP进阶】Redis批处理缓存

大家好&#xff0c;我是程序员若风&#xff0c;又到了技术分享时刻。 概要 在某些场景下&#xff0c;我们需要频繁的使用到缓存&#xff0c;比如需要获取多个key值&#xff0c;如果采用单个拿缓存的办法&#xff0c;会造成网络IO极大的浪费&#xff0c;所以我们需要用户Redis…

Leetcode3036. 匹配模式数组的子数组数目 II

Every day a Leetcode 题目来源&#xff1a;3036. 匹配模式数组的子数组数目 II 解法1&#xff1a;KMP 设数组 nums 的长度为 m&#xff0c;数组 pattern 的长度为 n。 遍历数组 nums 的每个长度是 n1 的子数组并计算子数组的模式&#xff0c;然后与数组 pattern 比较&…