美文网首页PAT
1008 Elevator

1008 Elevator

作者: 胖胖的熊管家 | 来源:发表于2020-04-10 20:16 被阅读0次

    题目

    给定一组要停的楼层号序列。
    电梯每上一层花费6秒;每下一层花费4秒;每停一次花费5秒。
    电梯从第0层开始,结束后也不必回到0层。

    Sample Input
    3 2 3 1
    
    Sample Output
    41
    

    解法

    法一:C++
    思路:

    用一个current代表当前在哪层,输入的数a表示目标到那层,然后用if条件判断是上升还是下降,再做个简单数学运算即可。

    源代码:
    #include <iostream>
    #include <cstdio>
    #include <math.h>
    #include<vector>
    #include <string.h>
    #include <sstream>
    
    using namespace std;
    
    int main() {
        int a;
        int current = 0,sum = 0;
        cin>>a;
        while (cin>>a) {
            if(a > current){ //上升楼层
                sum += (a-current)*6+5;
                current = a;
            }
            else{//下降楼层
                sum += (current-a)*4+5;
                current = a;
            }
        }
        cout<<sum<<endl;
        return 0;
    }
    

    知识点+坑:

    1.学到了怎么输入一行的输入值

    用while循环即可!!

    坑坑坑!!

    1. 本来对题目的理解是从第0层到输入的第一个数,但是这样算后发现竟然是56!不是41!
      后来才发现,人家的意思是(我表述不清,请自行理解,反正是从第2个数开始算)!!!
      所以,要在while循环外面先写一个cin<<!!!


    (PS:Sample对于题目的理解也很重要啊)

    相关文章

      网友评论

        本文标题:1008 Elevator

        本文链接:https://www.haomeiwen.com/subject/wfpdmhtx.html