当前位置: 首页 > article >正文

K13021 - 小科坐地铁

题目描述

小科每天上学都是坐地铁的,所以他妈妈给他办了一张地铁卡,每次乘坐地铁出入闸机时刷卡就行。最近一段时间,小科想知道从家到学校要多长时间,所以从地铁公司调出了n次乘车的记录信息进行核算,手动核算太麻烦,所以他想编写一个程序进行核算。

一次乘车记录包含两条信息,第一条信息是入闸机时闸机上显示的信息,表示入闸机开始乘车时间,第二条信息是出闸机时闸机上显示的时间,表示结束乘车时间

例如,一条乘车记录如下

09:58 10:48

前一条是入闸机时的信息,表示在入口闸机上刷卡时间是9点58分

后一条是出闸机时的信息,表示在出口闸机上刷卡时间是10点48分

那么可以知道这次乘车花费时间是50分钟 

现在给出小科n次乘车的记录信息,请你计算出n次乘车花费的时间

输入格式

第一行,n次乘车记录 (1 ≤ n ≤ 100)

接下来n行,表示有n组入站闸机和出站闸机的乘车时间记录

输出格式

输出n行,每次乘车花费的时间

格式为:xxHyyM其中xx和yy分别是小时和分钟,并且都是两位数,不够两位时用0补齐

输入输出样例

输入样例1:

1

09:58 10:48

输出样例1:

00H50M

输入样例2:

2

09:34 10:52

06:35 07:45

输出样例2:

01H18M

01H10M

说明

(1)对于100%的数据,1 ≤ n ≤ 100, 

(2)对于每次乘车记录,出闸机时间一定大于入闸机时间

这一题本人写的有亿点点复杂,还请见谅

代码:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,s1,s2,k1,q,w;
    cin>>n;
    char a[1100];
    while(n--){
        for(int i=1;i<3;i++) cin>>a[i];
        if(a[1]!='0'){
            s1=a[1]-'0';
            k1=a[2]-'0';
            s1=s1*10+k1;
        }
        else s1=a[2]-'0';
        cin.get();
        for(int i=1;i<3;i++) cin>>a[i];
        if(a[1]!='0'){
            s2=a[1]-'0';
            k1=a[2]-'0';
            s2=s2*10+k1;
        }
        else s2=a[2]-'0';
        q=s1;
        w=s2;
        cin.get();
        for(int i=1;i<3;i++) cin>>a[i];
        if(a[1]!='0'){
            s1=a[1]-'0';
            k1=a[2]-'0';
            s1=s1*10+k1;
        }
        else s1=a[2]-'0';
        cin.get();
        for(int i=1;i<3;i++) cin>>a[i];
        if(a[1]!='0'){
            s2=a[1]-'0';
            k1=a[2]-'0';
            s2=s2*10+k1;
        }
        else s2=a[2]-'0';
        s1-=q;
        s2-=w;
        if(s2<0){s1--;s2+=60;}
        if(s1==0) cout<<"00H";
        else if(s1<10) printf("0%dH",s1);
        else cout<<s1<<"H";
        if(s2==0) cout<<"00M";
        else if(s2<10) printf("0%dM",s2);
        else cout<<s2<<"M";
        printf("\n");
    }   
    return 0;
}


http://www.kler.cn/a/283324.html

相关文章:

  • 【PowerHarmony】电鸿蒙学习记录-编写helloworld!
  • C++中的std::tuple和std::pair
  • 力扣662:二叉树的最大宽度
  • 【VIM】vim 常用命令
  • HTTP 客户端怎么向 Spring Cloud Sleuth 传输跟踪 ID
  • Elastic Observability 8.16:增强的 OpenTelemetry 支持、高级日志分析和简化的入门流程
  • GAN:数据生成的魔术师
  • 查看 linux 系统信息
  • MySQL——多表操作(四)(2)带 EXISTS 关键字的子查询
  • ruoyi-app前端在缓存中添加nick_name和user_id属性值
  • windows安装macos虚拟机
  • apisix 本地开发环境部署
  • iOS/iPadOS18.1Beta3发布,新增通知摘要和AI消除功能
  • 如何在CenOS7上安装docker
  • PostgreSQL:后端开发者的瑞士军刀
  • 给自己复盘用的tjxt笔记day12第一部分
  • 【原型设计工具评测】Axure、Figma、Sketch三强争霸
  • 关于stm32的硬件CRC32与U盘分区中的CRC32计算方式不同的探索;stm32的硬件CRC32的使用细节;stm32的硬件CRC32的问题;
  • gin 通过 OpenTelemetry 实现链路追踪
  • 上新!Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型
  • 数学基础 -- 线性代数之增广矩阵
  • Redis缓存穿透、缓存击穿与缓存雪崩的详细讲解和案例示范
  • 【WiFi协议的发展学习1】
  • SpringTask定时任务笔记
  • 仿BOSS招聘系统开发:构建高效、智能的在线招聘平台
  • Hadoop集群运维管理