Y • 3天前
using namespace std;
// 每个月的天数(索引0 unused,2月默认28天) int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool is_leap(int year){
return (year%4==0 && year%100!=0) || year%400 == 0;
} bool is_valid(int year, int month, int day){
if(month<1 || month > 12) return false;
if(day < 1) return false;
if(month == 2){
if(is_leap(year)) return day <= 29;
else return day <= 28;
}
return day <= days_in_month[month];
}
int get_palindrome_date(int year){
int a = year/1000;
int b = (year%1000 )/100;
int c = (year%100 )/10;
int d = year % 10;
return year*10000 + d * 1000 + c * 100 + b * 10 + a;
}
int main(){
int start,end;
cin >> start >> end;
int count = 0;
for(int year = 1000;year <= 9999; year++){
int palindrome = get_palindrome_date(year);
if(palindrome < start) continue;
if(palindrome > end ) break;
int y = year;
int m = (palindrome / 100) % 100;
int d = palindrome % 100;
if(is_valid(y,m,d)) count++;
}
cout << count ;
return 0;
}
评论:
请先登录,才能进行评论