1. 程式人生 > >牛客網練習30

牛客網練習30

題目描述

眾所周知,小K是nowcoder的暴政苟管理,所以小K很擅長踢樹,雖然本題與踢樹無關

小K喜歡將日期排列成yyyy-mm-dd的形式(位數不足添零補齊)的形式,雖然這與小K只會做迴文字串這道水題無關,但小K覺得日期組成的迴文串也是挺可愛的。作為一個涼心出題人,小K決定給你一個可愛的問題:給你兩個日期,求這兩個日期的閉區間內有多少個迴文的日期(輸入可能包含多組資料)

輸入描述:

第一行包含一個整數T,表示有T組資料

接下來T行,每行兩個“yyyy-mm-dd"形式的日期

輸出描述:

輸出共T行,每行輸出當前資料的迴文日期的個數

 水過,不是正確的,當遇到同一年時,出錯!!

#include <bits/stdc++.h>
using namespace std;
 
int a[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 
int main()
{
    int N;
    cin>>N;
    while(N--)
    {
        int sy, ey, sm, em, sd, ed;
        cin>>sy>>sm>>sd>>ey>>em>>ed;
        int ans = 0;
        for (int m = 1; m <= 12; m++) {
            for (int d = 1; d <= a[m]; d++) {
                int y = d%10*1000 + d/10*100 + m%10*10 + m/10;
                if (y >= sy && y <= ey) ans++;
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}