#include<iostream>
#include<string>
using namespace std;
//纯数字——检验是否是日期
bool DateCheck(int date)
{
/*
* 1.一个8位数进来,进行拆分,拆分出年月日
* 2.对月的判断:1到12即可
* 3.日的判断:
int year, month, day;
year = date / 1000;
month = date % 1000 / 100; //注意月份是用的整型,赋值02会变为2
day = date % 100;
if (date >= 100000000 || date < 0)
{
return false;
}
else if (month>12)
{
return false;
}
else if (day > 31)
{
return false;
}
else {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if (day <= 31)
{
return true;
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
if (day <= 30)
{
return true;
}
}
else if (month == 2)
{
bool leap = false;
leap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if (leap==true&&day<=29)
{
return true;
}
else if (leap == false && day <= 28)
{
return true;
}
else
{
return false;
}
}
}
}
bool PalindromeCheck(int date)
{
int year, MonDay,copy;
year = date / 1000;
MonDay = date % 1000;
copy = MonDay;
for (int i=1;i<=4;i++)
{
MonDay = MonDay * 10 + copy % 10;
copy /= 10;
}
MonDay /= 1000;
if (year == MonDay)
{
return true;
}
else
{
return false;
}
}
int main() {
int year1, year2;
cin >> year1 >> year2;
if (year1 < year2 && DateCheck(year1) && DateCheck(year2))
{
int count = 0;
for (year1; year1 < year2; year1++)
{
if (PalindromeCheck(year1) == true)
{
count++;
}
}
}
cout << count << endl;
system("pause");
return 0;
}
我找出了问题所在,但是我不知道为什么在if内定义整型变量,最后输出这个变量的时候会报“<<“这个错误。
请求大家帮忙解决一下我的苦恼!
万分感谢!
o(╥﹏╥)o