HDU1008 ZOJ2108 Elevator

问题链接:HDU1008 ZOJ2108 Elevator基础训练题,用C语言编写程序。

每行的数据有n+1个数据,第一个数据是n,然后是n个数据,即n个要停的层的数据。

电梯开始在0层,上一层需要6秒,下一层需要4秒,停一次需要5秒。电梯最后不需要回到0层。

问题是把所有人都送到各层总共需要多少时间。

AC程序如下:

/* HDU1008 ZOJ2108 Elevator */

#include <stdio.h>
//#include <stdlib.h>

#define MAXN 100

int main(void)
{
    int n, stop[MAXN+1], count, i;
    int currposit;

    while(scanf("%d", &n) != EOF) {
        // 判断结束条件
        if(n == 0)
            break;

        // 读入数据
        for(i=0; i<n; i++)
            scanf("%d", &stop[i]);

        // 计算
        count = 0;
        currposit = 0;  // 电梯开始在0层
        for(i=0; i<n; i++) {
            if(stop[i] > currposit)
                count += (stop[i] - currposit) * 6;
            else
                count += (currposit - stop[i]) * 4;
            count += 5;

            currposit = stop[i];
        }

        // 输出结果
        printf("%d\n", count);
    }

    return 0;
}


posted on 2016-07-12 22:48  海岛Blog  阅读(73)  评论(0编辑  收藏  举报

导航