zoukankan      html  css  js  c++  java
  • zzuli oj 1121 电梯

    题目描述 :
    在某一高层建筑内只有一部电梯,当你按下一个数时,电梯会运行到那一层。已知电梯每上升一层需6秒,下降一层需4秒,
    在需要停留的那层停留5秒。现有N个整数组成的一个需求列表,电梯将依次响应,电梯从0层开始运行,而在运行过程结束
    之前不会返回0层。
    注意,若出现相邻两个整数相等,代表在同一层执行了两个不同任务,可以理解为:电梯已经停了5秒,正要关门时又有人
    在同一层按开门键,电梯又开门并停留5秒。
    输入
    输入分两行,第一行是一个正整数N(N<=1000),代表停留几次,第二行的N个数字代表这几次依次停留的楼层。
    输出
    输出电梯完成该任务序列所需的时间,单独占一行。
    解题思路:
    上升一层6秒,下降一层4秒,停留一次五秒。用数组把这几次停留的楼层储存起来,判断每个数与其相邻的后一个数的差值来判断
    上升下降或者停留。
    代码实现:

     1 #include<stdio.h>
     2 #include<math.h>
     3 int main()
     4 {
     5  int N,i,cz,sj=0;
     6  int a[1020];
     7  a[0]=0;
     8  scanf("%d",&N);
     9  for(i=1;i<=N;i++)
    10  scanf("%d",&a[i]);
    11  for(i=1;i<=N;i++)
    12  {
    13  cz=a[i]-a[i-1];
    14  if(cz<0) sj+=(-1)*cz*4;
    15  else if(cz>0) sj+=cz*6;
    16  else sj+=0;
    17  }
    18  printf("%d
    ",sj+N*5);
    19  return 0;
    20  } 


    易错分析:
    1.数组的第一个元素是0,要首先给出来,因为从输入的第一个整数开始就开始计算时间。
    2.前后两个数相同时不需要再另外加时间,因为只要出现一个整数就说明停留一次,最后加上N*5就可以计算所有停留时间。

  • 相关阅读:
    ASIHttpRequest封装
    算法6-6:哈希表应用之字典应用
    代码杂记(三)
    拥塞避免算法
    使用Unity制作的一个望远镜特效,在狙击手游戏中非经常见
    Ubuntu Linux下安装Oracle JDK
    Java输入输出流(2)
    软考之路--小桥流水人家
    [Java]LeetCode116. 填充同一层的兄弟节点 | Populating Next Right Pointers in Each Node
    [Swift]LeetCode115. 不同的子序列 | Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/yuanqingwen/p/10395096.html
Copyright © 2011-2022 走看看