zoukankan      html  css  js  c++  java
  • [Nowcoder] 时钟(网易游戏)

    注意:本题允许使用C/C++/Java/python进行解答,其他编程语言提交均视作无效处理。
     
    小W有一个电子时钟用于显示时间,显示的格式为HH:MM:SS,HH,MM,SS分别表示时,分,秒。其中时的范围为[‘00’,‘01’…‘23’],分的范围为[‘00’,‘01’…‘59’],秒的范围为[‘00’,‘01’…‘59’]。

    但是有一天小W发现钟表似乎坏了,显示了一个不可能存在的时间“98:23:00”,小W希望改变最少的数字,使得电子时钟显示的时间为一个真实存在的时间,譬如“98:23:00”通过修改第一个’9’为’1’,即可成为一个真实存在的时间“18:23:00”。修改的方法可能有很多,小W想知道,在满足改变最少的数字的前提下,符合条件的字典序最小的时间是多少。其中字典序比较为用“HHMMSS”的6位字符串进行比较。

    输入描述:
    每个输入数据包含多个测试点。每个测试点后有一个空行。 第一行为测试点的个数T(T<=100)。 每个测试点包含1行,为一个字符串”HH:MM:SS”,表示钟表显示的时间。
    输出描述:
    对于每个测试点,输出一行。如果钟表显示的时间为真实存在的时间,则不做改动输出该时间,否则输出一个新的”HH:MM:SS”,表示修改最少的数字情况下,字典序最小的真实存在的时间。
    输入例子1:
    2
    19:90:23
    23:59:59
    输出例子1:
    19:00:23
    23:59:59


    修改时钟里不合理的值,使其字典序最小。

    因为情况很少,所以直接枚举每种情况进行判断即可。

    时:十位超过2置0,十位等于2个位超过3置0,

    分:十位超过5置0

    秒:十位超过5置0

    注意:和其他题目输入输出要求有些不同。

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        int n;
        cin >> n;
        while (n--)
        {
            string str;
            cin >> str;
            string H = str.substr(0, 2);
            string M = str.substr(3, 2);
            string S = str.substr(6, 2);
            if (H[0] > '2')
                H[0] = '0';
            if (H[0] == '2' && H[1] > '3')
                H[0] = '0';
            if (M[0] > '5')
                M[0] = '0';
            if (S[0] > '5')
                S[0] = '0';
            string res = H + ':' + M + ':' + S;
            cout << res << endl;
        }
        return 0;
    }
  • 相关阅读:
    2012年决胜HTML5 十四大Web预测盘点
    王海波:Discuz! X 社区功能架构
    史应生:Linux操作系统的性能优化技术
    虚拟还原原理解析
    金山张宴:PHP在金山游戏运营中的应用
    java方法的参数传递
    java逻辑连接词总结
    java名称命名规范
    java引用包的两种方式
    java信息的封装和隐藏
  • 原文地址:https://www.cnblogs.com/immjc/p/9444558.html
Copyright © 2011-2022 走看看