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

相关文章

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL