SCLBJKD @ 2018-10-22 12:59:03
#include<bits/stdc++.h>
using namespace std;
int n,m,day1,day2,mon1,mon2,yea1,yea2,ans=0;
int hw(string s)
{
int x,y;
x=0;
y=7;
while(s[x]==s[y])
{
if(s[x]!=s[y]) return 0;
if(y-x==1) return 1;
x++;
y--;
}
}
int check(int o)
{
if((!o%4 && o%100) || !o%400) return 0;
else return 1;
}
int main()
{
cin>>n>>m;
day1=n%100;//n的日
day2=m%100;//m的日
mon1=n/100%100;//n的月
mon2=m/100%100;//m的月
yea1=n/10000;//n的年
yea2=m/10000;//m的年
while(day1!=day2 && mon1!=mon2 && yea1!=yea2)//直到日期相等
{
if(day1==32 && (mon1==1 || mon1==3 || mon1==5 || mon1==7 || mon1==8 || mon1==10 || mon1==12))//大月进月
{
day1=1;
mon1++;
}
if(day1==31 && (mon1==4 || mon1==6 || mon1==9 || mon1==11))//小月进月
{
day1=1;
mon1++;
}
if(day1==29 && mon1==2 && check(yea1))//二月平年进月
{
day1=1;
mon1++;
}
if(day1==30 && mon1==2 && !check(yea1))//二月闰年进月
{
day1=1;
mon1++;
}
if(mon1==13)//月满进年
{
yea1++;
mon1=1;
day1=1;
}
string da,mo,ye,res;
stringstream ss;
ss<<day1;
ss>>da;
ss<<mon1;
ss>>mo;
ss<<yea1;
ss>>ye;
res=ye+mo+da;//粘起来
if(hw(res)) ans++;//如果回文,ans加一
day1++;//寻找下一个日期
}
cout<<ans;//输出ans
}
by 白いバラの夜 @ 2018-10-22 13:02:45
GZ dark佬
by 白いバラの夜 @ 2018-10-22 13:03:34
@SCLBJKD 打表吧
by SCLBJKD @ 2018-10-22 13:04:05
@一个大蒟蒻 你怎么知道我是GZ的
by SCLBJKD @ 2018-10-22 13:05:09
@一个大蒟蒻 能帮我看下我的程序有什么错吗???
by 白いバラの夜 @ 2018-10-22 13:08:55
@SCLBJKD 正在看呢,枚举前四位不就行了吗
by UhhhQQQU @ 2018-10-22 13:14:12
枚举年份或日期
by 白いバラの夜 @ 2018-10-22 13:14:35
@犇字怎么打 枚举年更好
by UhhhQQQU @ 2018-10-22 13:15:03
看一下我的博客吧,我这里有一个题解(还在审核)
https://liuzhichong.blog.luogu.org/solution-p2010
by UhhhQQQU @ 2018-10-22 13:15:35
我用的是枚举年份QAQ
by 白いバラの夜 @ 2018-10-22 13:16:54
@犇字怎么打 Orz