PAT-Apat甲级题1008(python和c++实现)

2024-02-06 07:36

本文主要是介绍PAT-Apat甲级题1008(python和c++实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PTA | 1008 Elevator

1008 Elevator

作者 CHEN, Yue

单位 浙江大学

The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in specified order. It costs 6 seconds to move the elevator up one floor, and 4 seconds to move down one floor. The elevator will stay for 5 seconds at each stop.

For a given request list, you are to compute the total time spent to fulfill the requests on the list. The elevator is on the 0th floor at the beginning and does not have to return to the ground floor when the requests are fulfilled.

Input Specification:

Each input file contains one test case. Each case contains a positive integer N, followed by N positive numbers. All the numbers in the input are less than 100.

Output Specification:

For each test case, print the total time on a single line.

Sample Input:

3 2 3 1

Sample Output:

41

万事开头难,先读题!

我们城市最高的大楼只有一部电梯。请求列表由N个正数组成。数字表示电梯将按特定顺序停在哪些楼层。电梯上升一层需要6秒,下降一层需要4秒。电梯在每一站停留5秒钟。

对于给定的请求列表,您要计算完成列表上的请求所花费的总时间。电梯开始时在0楼,当要求得到满足时不必返回地面楼层。
输入规范:

每个输入文件包含一个测试用例。每个case都包含一个正整数N,后面跟着N个正数。输入中的所有数字都小于100。
输出规格:

对于每个测试用例,在一行上打印总时间。
样品输入:

3 2 3 1

输出示例:

41

一遍题目读下来,可以提取到以下的信息:

        1, 输入一行,但是分为两个部分,第一个为电梯所经过的楼层数量,其余为具体楼层

        2, 上楼和下楼所花费的时间不一样,每层设置一个停留时间,且停留时间相同

        3, 电梯起始层数为0层,且结束后不必回到一层

综合上述内容,本题难度较低,重点是在于细节部分的处理,okk,接下来是熟悉的手搓代码时间!!!

首先,定义输入变量和输入数组,确定初始变量:上升一层所花费时间up=6,下降一层所需时间low=4,停留时间stop=5,定义cost用于记录花费时间,定义lastflow用于记录上一次的楼层位置

接下来,循环接收输入的楼层,并根据楼层变化确定花费的时间,值得注意的是,千万不要遗忘了,楼层下降时,计算得到的楼层差为负数,计算花费时间时需要注意这点!

由于本题思路较为简单,下面直接给出完整的代码,若有疑惑之处,欢迎评论区交流!

python:

lst = [int(i) for i in input().split()][1:]
up = 6
low = 4
stop = 5
lastflow = 0
cost = 0
for i in lst:cha = i - lastflowif cha > 0:cost += cha * upelif cha < 0:cost += -cha * lowcost += stoplastflow = i
print(cost)

C++:


#include<bits/stdc++.h>
using namespace std;int n;
int up=6,low=4,stop=5,cost,lastflow;int main(){cin >> n;lastflow = 0;for(int i=0; i<n; i++){int temp;cin >> temp;int cha = temp - lastflow;if(cha > 0){cost += cha * up;}else{cost += (-cha) * low;}cost += stop;lastflow = temp;}cout << cost;}

最后附上AK截图:

C++:

python:

这篇关于PAT-Apat甲级题1008(python和c++实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/683586

相关文章

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx