呃呃呃,這個題我寫的**比較繁瑣,不過自認為還是很容易理解的。
輸入的是兩個日期,如果把它看成乙個數的話,資料範圍也就是10000000-99999999;而且在其中很多數是不會出現的(必須是真實存在的日期)如果是從輸入的第乙個數到第二個數迴圈一次的話,1s的時間限制也是能過的,迴圈的時候,要判斷這個數是否是回文數,再判斷這個數是否為合法的日期。所以再定義兩個函式分別判斷就可以了。
首先是判斷日期是否合法的函式:
1返回值只需要「true」或「false」就可以了,所以函式型別就是bool型,下面判斷回文的函式也一樣。三個變數:year來儲存年份,t來儲存月份,date來儲存日期。分別存好後,先判斷月份,首先月份要是不合法的話就直接返回false;然後再根據每個月份所對應的最多天數來判斷是否合法。其中2月份比較特殊,先要判斷是閏年還是平年,再判斷日期是否合法。bool hf(inta)2
14if(t==4||t==6||t==9||t==11)15
19if(t==2)20
26else
2731
}32 }
然後,判斷是否為回文數的函式:
1判斷回文的話就直接將後四位數翻轉過來,再判斷是否和前四位數相等,若相等,則為回文數。bool hw(inta)2
7else
return
false
; 8 }
然後main函式裡進行迴圈和呼叫函式就可以了。
ac**:
1 #include2using
namespace
std;
3bool hf(inta)4
16if(t==4||t==6||t==9||t==11)17
21if(t==2)22
28else
2933}34
}35bool hw(int
a)36
41else
return
false
; 42}43
intmain()
4453
}54 cout<
55return0;
56 }
洛谷P2010 回文日期
在日常生活中,通過年 月 日這三個要素可以表示出乙個唯一確定的日期。牛牛習慣用8位數字表示乙個日期,其中,前44位代表年份,接下來2位代表月 份,最後2位代表日期。顯然 乙個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,乙個日期是回文的,當且僅當表示這個日期的8位數字是回文的...
洛谷 P2010 回文日期
noip2016普及組t2 在日常生活中,通過年 月 日這三個要素可以表示出乙個唯一確定的日期。牛牛習慣用8位數字表示乙個日期,其中,前4位代表年份,接下來2位代表月 份,最後2位代表日期。顯然 乙個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,乙個日期是回文的,當且僅當表示...
洛谷 P2010 回文日期
在日常生活中,通過年 月 日這三個要素可以表示出乙個唯一確定的日期。牛牛習慣用8位數字表示乙個日期,其中,前4位代表年份,接下來2位代表月 份,最後2位代表日期。顯然 乙個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,乙個日期是回文的,當且僅當表示這個日期的8位數字是回文的。...