zoukankan      html  css  js  c++  java
  • [编程题] 时钟

    小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
    #include<bits/stdc++.h>
    #include<vector>
    #include<string.h>
    using namespace std;
    
    vector<string> split(string str,string pattern){
        int pos;
        vector<string> vec;
        str += pattern;
        int len = str.length();
        for(int i = 0;i<len;i++){
            pos = str.find(pattern,i);
            if(pos < len){
                string s = str.substr(i,pos-i);
                vec.push_back(s);
                i = pos + pattern.size()-1;
            }
        }
        return vec;
    }
    int getnum(char ch)
    {
        return ch-'0';
    }
    int getnumber(string s){
       // cout<<s<<endl;
        return getnum(s[0])*10+getnum(s[1]);
    }
    int main()
    {
        int _;
        cin>>_;
        
            cin.ignore();
        while(_--){
            vector<string> vec;
            string s;
            getline(cin,s);
            vec = split(s,":");
            int a = getnumber(vec[0]);
            int b = getnumber(vec[1]);
            int c = getnumber(vec[2]);
            if(a>23)a%=10;
            if(b>59)b%=10;
            if(c>59)c%=10;
           cout<<setw(2)<<setfill('0')<<a;
            cout<<":";
            cout<<setw(2)<<setfill('0')<<b;
            cout<<":";
            cout<<setw(2)<<setfill('0')<<c;
            cout<<endl;
        }
    }
  • 相关阅读:
    Stm32高级定时器(三)
    Stm32高级定时器(二)
    Java网络编程
    Java锁详解
    Linux Shell入门
    Mysql锁详解
    Redis入门——Java接口
    Redis入门——安装与基本命令
    Eclipse创建maven工程后没有build path解决方案
    Jersey入门——对Json的支持
  • 原文地址:https://www.cnblogs.com/lyf-sunicey/p/9392943.html
Copyright © 2011-2022 走看看