已ac

Y  •  3天前


include

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;

}


评论:

请先登录,才能进行评论