HDU1008

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

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

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

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

AC程序如下:

  1. /* HDU1008 ZOJ2108 Elevator */  
  2.   
  3. #include <stdio.h>  
  4. //#include <stdlib.h>  
  5.   
  6. #define MAXN 100  
  7.   
  8. int main(void)  
  9. {  
  10.     int n, stop[MAXN+1], count, i;  
  11.     int currposit;  
  12.   
  13.     while(scanf("%d", &n) != EOF) {  
  14.         // 判断结束条件  
  15.         if(n == 0)  
  16.             break;  
  17.   
  18.         // 读入数据  
  19.         for(i=0; i<n; i++)  
  20.             scanf("%d", &stop[i]);  
  21.   
  22.         // 计算  
  23.         count = 0;  
  24.         currposit = 0;  // 电梯开始在0层  
  25.         for(i=0; i<n; i++) {  
  26.             if(stop[i] > currposit)  
  27.                 count += (stop[i] - currposit) * 6;  
  28.             else  
  29.                 count += (currposit - stop[i]) * 4;  
  30.             count += 5;  
  31.   
  32.             currposit = stop[i];  
  33.         }  
  34.   
  35.         // 输出结果  
  36.         printf("%d\n", count);  
  37.     }  
  38.   
  39.     return 0;  
  40. }  
/* 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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值