美文网首页
2019-08-07(甲级3题)

2019-08-07(甲级3题)

作者: MuserQuantity | 来源:发表于2019-08-08 19:40 被阅读0次

1005 Spell It Right (20 分)

这道题大致意思是:将输入的整数字符串按位求和,再将得到的和按位输出,0输出zero,1输出one,以此类推。
要注意的坑: 当只输出一个0的时候,直接输出zero。

1006 Sign In and Sign Out (25 分)

这道题大致意思是:判断门是谁开的(来最早的),谁关的(走最晚的)。主要是时间的处理问题。
要注意的: 时间的输入不需要逐个逐个判断,用scanf就能很好地解决时间输入的问题,再统一转换成秒,就能很方便地比较大小了。
代码如下:

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;

int main(){
    string early,last;
    int n,unlock=24*3600,lock=0;
    cin>>n;
    for(int i=0;i<n;i++){
        string id;
        int h,m,s,start=0,finish=0;
        cin>>id;
        scanf("%d:%d:%d",&h,&m,&s);
        start=h*3600+m*60+s;
        //cout<<id<<h<<m<<s<<endl;
        scanf("%d:%d:%d",&h,&m,&s);
        //cout<<id<<h<<m<<s<<endl;
        finish=h*3600+m*60+s;
        if(start<unlock){
            unlock=start;
            early=id;
        }
        if(finish>lock){
            lock=finish;
            last=id;
        }
    }
    cout<<early<<" "<<last;
    return 0;
}

1008 Elevator (20 分)

这道题大致意思是:电梯移动,移动到不同楼层时的上升下降停止的时间不一样。
最大的坑是: 首先第一个数字是指接下来会出现多少个数字,直接读int整数就行了。其次是,停止时间是每读取一个数都停止等待,一定要都加上。
代码如下:

#include <iostream>
using namespace std;

int main(){
    int n,current=0,sum=0;
    cin>>n;
    for(int i=0;i<n;i++){
        int to;
        cin>>to;
        int sub=to-current;
        if(sub>0){
            sum+=6*sub;
        }
        else sum-=4*sub;
        sum+=5;
        current=to;
    }
    cout<<sum;
    return 0;
}

相关文章

网友评论

      本文标题:2019-08-07(甲级3题)

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