洛谷 题解 P2010 【回文日期】
生活随笔
收集整理的這篇文章主要介紹了
洛谷 题解 P2010 【回文日期】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為有8個字符,所以可得出每一年只有一個回文日期。
因此只要判斷每一年就行了。
做法:
我們先把年倒過來,例如2018年就倒為8102,就得出8102就是回文日期的后四個字符,我們只要判斷一下有沒有這個月份和這個日期。
具體做法看AC代碼
#include<bits/stdc++.h> using namespace std; int ans=0; int montht[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//各個月份的天數 int main() {int year,month,day;int year2,month2,day2;string s1,s2;cin>>s1>>s2;year=(s1[0]-'0')*1000+(s1[1]-'0')*100+(s1[2]-'0')*10+s1[3]-'0';//把起始年份單獨提取出來year2=(s2[0]-'0')*1000+(s2[1]-'0')*100+(s2[2]-'0')*10+s2[3]-'0';//把終止年份單獨提取出來for(int i=year;i<=year2;i++)//用年來循環{if((i%4==0&&i%100!=0)||i%400==0)//判斷是否為閏年{montht[2]=29;}else montht[2]=28;if((i%10)*10+i/10%10<=12)//將年的后兩位倒過來,并判斷是否大于12。{if((i/100%10)*10+i/1000<=montht[(i%10)*10+i/10%10])//判斷前兩位倒回來是不是小于該月份的日期{ans++;//答案加1}}}cout<<ans<<endl;//輸出結果return 0; }轉載于:https://www.cnblogs.com/hulean/p/10799253.html
總結
以上是生活随笔為你收集整理的洛谷 题解 P2010 【回文日期】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: StreamSets实战之路(十五)-实
- 下一篇: 7-6 列出连通集 (25 分)(C语言