• 牛客小白月赛5-J-时间(time) (简单模拟)


    题目描述

     Apojacsleam是一个喜欢特殊时刻的人。

    他定义了一个时刻,若电子表显示ab:ba(24小时制),则该时刻为“回文时刻”(可以有前导零)。例如00:00就是回文时刻。

    给定一个时刻,求此时刻的上一个和下一个回文时刻。
    J题附加:00:00就是24:00,没有24:00这一时刻
    J题附加:输入可能有前导0,输出不含前导0,例如10:1的意思是10:01,而10:10的输出为10:10 

    输入描述:

    两个正整数,用“:”隔开,表示小时和分钟,保证输入时间合法。

    输出描述:

    两行,两个时刻(不含前导0),用“:”隔开,表示上一个时刻和下一个时刻
    示例1

    输入

    09:33

    输出

    5:50
    10:1
    示例2

    输入

    23:32

    输出

    22:22
    0:0
    解题思路:模拟一下正常时间走法即可找出给定时间的上一个和下一个回文时刻。
    AC代码:
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int hh,mm,t,s;
     4 int main(){
     5     while(~scanf("%d:%d",&hh,&mm)){
     6         t=hh,s=mm;
     7         while(1){//找上一个回文时刻
     8             s--;
     9             if(s==-1){s=59;t--;}//s==0时,t还没改变,只有减为-1,则置s=59,t减1
    10             if(t==-1)t=23;//t==0时,可以认做24时,实际没有这一时刻,当t==-1时重置t为23时
    11             if(t==(s%10)*10+s/10){printf("%d:%d
    ",t,s);break;}
    12         }
    13         t=hh,s=mm;
    14         while(1){//找下一个回文时刻
    15             s++;
    16             if(s==60){s=0;t++;}//当s==60时,重置s=0,同时t加1
    17             if(t==24)t=0;//当t为24时,由于没有24这一时刻,因此此时要重置t为0时
    18             if(t==(s%10)*10+s/10){printf("%d:%d
    ",t,s);break;}
    19         }
    20     }
    21     return 0;
    22 }
  • 相关阅读:
    图片上传
    解决Vuex持久化插件-在F5刷新页面后数据不见的问题
    vue登录
    拖动排序的vue组件
    vue图片懒加载
    vue中使用图片预加载
    前端架构知识体系
    html判断IE版本
    HighCharts 在IE8下饼图不显示的问题
    新一代调试王者Console
  • 原文地址:https://www.cnblogs.com/acgoto/p/9470277.html
Copyright © 2020-2023  润新知