ke_duo_li_de_gou @ 2023-01-09 17:17:59
#include <bits/stdc++.h>
using namespace std;
int l,r,a,b,x,yf,rq,t[15]{31,29,31,30,31,30,31,31,30,31,30,31},cnt,hw;
inline int dz(int n)
{
int nn;
for(int i = 1;i<=4;i++)
{
nn=n%10+nn*10;
n/=10;
}
return nn;
}
int main()
{
cin>>a>>b;
l=a/10000;
r=b/10000;
for(int i=l;i<=r;i++)
{
x=dz(i);
yf=x/100;
rq=x%100;
if(yf>=1&&yf<=12)
{
if(rq<=t[yf])
{
hw=i*10000+x;
if(hw>=a&&hw<=b)
{
++cnt;
}
}
}
}
cout<<cnt;
return 0;
}
每次只有60分,不知道有没有能改进的。想法是,枚举每一年的回文年,检验是否合法,用cnt记录。
by InversionShadow @ 2023-01-09 17:20:50
@srt15874341327 您判断了闰年吗?
by VitrelosTia @ 2023-01-09 17:21:49
@srt15874341327 你是不看上个帖子的吗?闰年的情况你讨论了吗???
by 凌日潮汐 @ 2023-01-09 17:21:55
平年二月28天欸
by InversionShadow @ 2023-01-09 17:23:07
我是煞笔,您的数组二月是29天,平年二月28天
by ke_duo_li_de_gou @ 2023-01-09 17:44:56
@yuandingquan1101 不用讨论吧,29天的话0229反过来是9220,整个回文就是92200229,别的闰年反过来不会是0229了。
by hxc_gl @ 2023-01-09 19:13:01
@srt15874341327 虽然是很简单的方法,但是非常有效,您很厉害,但是您并没有用到这个方法(92200229也是真实存在的日期哦),因为您的数组中2月有29天,并且x月对应的天数不应该是t[x-1]吗?
by hxc_gl @ 2023-01-09 19:15:02
@srt15874341327 这个方法真的很好,容我多回复一句,受教了
by ke_duo_li_de_gou @ 2023-01-09 20:38:34
@hxc_gl 没事没事,一起讨论交流也是一种很好的提升方法