文章

12

粉丝

411

获赞

28

访问

167.6k

头像
P1005 - 博学楼的阶梯 - C
P1005 计算机考研机试入门题
发布于2020年3月24日 14:08
阅读数 10.2k

/*Time Limit: 1000 ms
Memory Limit: 256 mb
众所周知,北校区的博学楼是有11层楼,并且有三个电梯。
假设电梯上升一层需要6秒,下降一层需要4秒,在每在一层停留需要3秒。
电梯初始在1楼,现在给你电梯要去楼层顺序,
例如3,2,5代表电梯从1楼到达三楼,再从三楼到达2楼,再从2楼到达5楼。
问通过这些操作,电梯需要花多少时间?
例如3,2,5,从1楼到3楼需要2 * 6秒,然后停留3秒,再从3楼到2楼需要4秒,再停留3秒,
再由2楼到5楼需要3 * 6秒,停留3秒。所以总共需要2 * 6 + 3 + 4 + 3 + 3 * 6 + 3 = 43。
如果上次要停留的楼层与这次相同,则只需要再停留3秒即可。*/

#include <stdio.h>
int func(int a[],int n);//函数声明 

int main(){
    int t,n,i;
    scanf("%d",&t);//有t组数据输入
    while(t--){
        int result = 0;//耗时
        scanf("%d",&n);//记录每组数据的个数
        int a[n];//定义数组,存放每组数据
        i = n;
        while(i--){
            scanf("%d",&a[n-1-i]);//记录现在所在楼层 
        } 
        result = func(a,n);//计算耗时    
        printf("%d\n",result);//输出result 
    }
    return 0;
}

int func(int a[],int n){
    int sum = 0,i;
    int last = 1;//定义初始楼层
    int now;//定义现在所在楼层
    for(i=0;i<n;i++){
        now = a[i];//现在所在楼层 
        if(now>last){
            sum += 3 + (n...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发