A1008 Elevator (20分)

2020-02-08  本文已影响0人  km15

/*
题意:
1、给定一定的序列(所有数字不超过100)
2、上升6秒,下降4秒,停留5秒,计算总时间

解题:
1、有一个total时间,初值为0,一个now记录当前层数,一个goal,记录目标层数
2、如果now > goal,则(goal - now ) * 6+ 5
如果goal小于now,则(now - goal)* 4 + 5
如果goal == now,则直接加5

learn && wrong:
1、总是少using namespace std;
2、修改了,dev是不会自动重新编译的,如果运行时上一次的,所以每次还是编译运行吧
3、题解不错,每次都需要更新now,现在的楼层,以及停留在本层是需要的!
*/

#include <iostream>
using namespace std;
int main(int argc, char** argv) {
    int num;
    cin >> num;
    
    int ans = 0,now =0, goal;   //总的时间,现在的楼层,目标楼层 
    for(int i = 0;i < num;++i){
        cin>>goal;
        if(now < goal){
            ans += (goal - now) * 6 + 5;
            now = goal;
        }else if(now > goal){
            ans += (now - goal) * 4 + 5;
            now = goal;
        } else{
            ans += 5;
            now = goal;
        }
    } 
    
    cout<<ans<<endl;
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读