您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關ACwing中如何使用回文日期,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
手寫一個日歷累死。
而八位數的回文,一旦前四位確定好,后四位就一定,所以只需要枚舉四位數字的。
所以,這個題的思路:先枚舉回文,再判斷該數字是否在給定范圍內,在判斷其是不是合法日期。
判斷合法日期:年份一定正確,月份要在1~12內,日期根據月份的不同,有不同的天數,這個可以考慮用一個數組來存。
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int date1,date2; int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool check_date(int date){ int year=date/10000; int month=date%10000/100; int day=date%100; if(month==0||month>12) return false; if(day==0||month!=2&&day>days[month]) return false; if(month==2){ //判斷閏年 int leap=year%100 && year%4==0 || year%400==0; if(day>leap+28) return false; } return true; } int main(){ cin>>date1>>date2; int res=0; //枚舉回文(前四位確定好之后,后四位就一定確定) for(int i=1000;i<10000;i++){ int date=i,x=i; for(int j=0;j<4;j++){ date=date*10+x%10; x/=10; } //判斷是否在范圍內并且是個合法日期 if(date1<=date && date2>=date && check_date(date)) res++; } cout<<res<<endl; return 0; }
看完上述內容,你們對ACwing中如何使用回文日期有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。