欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

2020第11屆藍(lán)橋杯C++B組(不確保答案正確性,僅供參考)2020藍(lán)橋試題 G: 回文日期 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

2020第11屆藍(lán)橋杯C++B組(不確保答案正確性,僅供參考)2020藍(lán)橋試題 G: 回文日期

發(fā)表時(shí)間:2020-10-17

發(fā)布人:葵宇科技

瀏覽次數(shù):179

試題 G: 回文日期
時(shí)間限制: 1.0s 內(nèi)存限制: 256.0MB 本題總分:20 分

【問題描述】

2020 年春節(jié)期間,有一個(gè)特殊的日期引起了大家的注意:2020 年 2 月 2日。因?yàn)槿绻麑⑦@個(gè)日期按 “yyyymmdd” 的格式寫成一個(gè) 8 位數(shù)是 20200202,恰好是一個(gè)回文數(shù)。我們稱這樣的日期是回文日期。有人表示 20200202 是 “千年一遇” 的特殊日子。對(duì)此小明很不認(rèn)同,因?yàn)椴坏?2 年之后就是下一個(gè)回文日期:20211202 即 2021 年 12 月 2 日。也有人表示 20200202 并不僅僅是一個(gè)回文日期,還是一個(gè) ABABBABA型的回文日期。對(duì)此小明也不認(rèn)同,因?yàn)榇蠹s 100 年后就能遇到下一個(gè)ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,頂多算 “千年兩遇”。給定一個(gè) 8 位數(shù)的日期,請(qǐng)你計(jì)算該日期之后下一個(gè)回文日期和下一個(gè)ABABBABA 型的回文日期各是哪一天。

【輸入格式】

輸入包含一個(gè)八位整數(shù) N,表示日期。

【輸出格式】

輸出兩行,每行 1 個(gè)八位數(shù)。第一行表示下一個(gè)回文日期,第二行表示下一個(gè) ABABBABA 型的回文日期。

【樣例輸入】

20200202

【樣例輸出】

20211202
21211212

試題 G: 回文日期 9
第十一屆藍(lán)橋杯大賽軟件類省賽第二場 C/C++ 大學(xué) B 組
【評(píng)測用例規(guī)模與約定】
對(duì)于所有評(píng)測用例,10000101 ≤ N ≤ 89991231,保證 N 是一個(gè)合法日期的
8 位數(shù)表示。
為防止查重系統(tǒng)誤判,故暫時(shí)只能以圖片示人

補(bǔ)充:非常感謝weixin_45803550這位朋友給我的代碼找著了一個(gè)bug,在判斷是否是ABABBABA這個(gè)地方,A與B應(yīng)該不相等才是,不然就變成AAAAAAAA形式的回文串了,哎,又錯(cuò)了一道題,請(qǐng)大家引以為戒,不要再犯我這樣的錯(cuò)誤.因?yàn)樵路菀欢ㄐ∮?2月,也就意味著,從10000101到11111110的測試點(diǎn),我的答案都是錯(cuò)的.因?yàn)檩敵鼋Y(jié)果都有11111111

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

#include<iostream>
#include<sstream>
#include<string>

using namespace std;

bool isRun(int y) {
    return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
int day[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30,31,30, 31};
int getDay(int y, int m) {
    if (m != 2) {
        return day[m];
    } else if (isRun(y)){
        return 29;
    } else {
        return 28;
    }
}
stringstream ss, s1, s2;
string getStr(int y, int m, int d) {
    string str;
    ss.clear();
    s1.clear();
    s2.clear();
    string ans;
    ss << y;
    ss >> str;
    int lenStr = str.length();
    if (lenStr < 4) {
        for (int i = 0; i < 4 - lenStr; i++) {
            ans += '0';
        }
    }
    ans += str;
    s1 << m;
    s1 >> str;
    lenStr = str.length();
    if (lenStr < 2) {
        for (int i = 0; i < 2 - lenStr; i++) {
            ans += '0';
        }
    }
    ans += str;
    s2 << d;
    s2 >> str;
    lenStr = str.length();
    if (lenStr < 2) {
        for (int i = 0; i < 2 - lenStr; i++) {
            ans += '0';
        }
    }
    ans += str;
    return ans;
}

bool judgeHuiWen(string & str) {
    return str[0] == str[7] && str[1] == str[6] && str[2] == str[5] && str[3] == str[4];
}
bool judgeABBA(string & str) {	//ABABBABA
    char A = str[0];
    char B = str[1];
    return A != B && str[0] == A && str[2] == A && str[5] == A && str[7] == A &&
           str[1] == B && str[3] == B && str[4] == B && str[6] == B;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int N;
    cin >> N;
    int num = 0;
    int startY = N / 10000;
    int startM = N / 100 % 100;
    int startD = N % 100;
//	cout << startY << ' ' << startM << ' ' << startD << endl;
    int y = startY;
    string str;
    bool flagHuiWen = false, flagAB = false;
    while(y) {
        for (int m = (y == startY? startM : 1); m <= 12; m++) {
            for (int d = (y == startY? startD : 1) + 1; d <= getDay(y, m); d++) {
                str = getStr(y, m, d);
                if (!flagHuiWen && judgeHuiWen(str)) {
                    flagHuiWen = true;
                    cout << str << '\n';
                }
                if (!flagAB && judgeABBA(str)) {
                    flagAB = true;
                    cout << str << '\n';
                }
                if (flagHuiWen && flagAB) {
                    return 0;
                }
            }
        }
        y++;
    }


    return 0;
}


相關(guān)案例查看更多