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

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 - lastflow
    if cha > 0:
        cost += cha * up
    elif cha < 0:
        cost += -cha * low
    cost += stop
    lastflow = 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:


http://www.kler.cn/a/229558.html

相关文章:

  • 设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析
  • 蓝牙BT04-A的使用与相关AT指令
  • 【数据可视化-12】数据分析岗位招聘分析
  • 《AI赋能鸿蒙Next,开启智能关卡设计新时代》
  • 【学习】【记录】【分享】微型响应系统
  • Redis 优化秒杀(异步秒杀)
  • Blender教程(基础)-顶点的移动、滑移-16
  • GaussDB HCS 轻量化部署软件下载指引
  • spring.jpa.hibernate 配置和源码解析
  • Java10-BigDecimal使用(位数、舍入、计算、比较、绝对值)
  • git rebase # |REBASE 1/1 #rebase in progress; onto
  • 可解释性AI(XAI)的主要实现方法和研究方向
  • 生物素-PEG4-酪胺,Biotin-PEG4-TSA,应用于酶联免疫吸附实验
  • containerd中文翻译系列(七)远程快照器
  • Java-并发高频面试题-2
  • 使用pygame建立一个简单的使用键盘方向键移动的方块小游戏
  • STM32内部Flash
  • 五、Redis之发布订阅及事务管理
  • Postman发送带登录信息的请求
  • 第43章 弗莱纳公式准备1 空间曲面坐标 ,梯度解释
  • 升级Oracle 单实例数据库19.3到19.22
  • 车位检测,YOLOV8,OPENCV调用
  • 单点登录怎么做?SSO实现原理和优势总结
  • 力扣面试150 数字范围按位与 公共前缀 位运算
  • 软件行业项目管理的优化策略与实施指南
  • Python调用matlab程序