1.题意
本题是蓝桥杯中的一道题,难度还是有的,题意读懂就可以,而大致就是让我找出所需要的特殊型号的年份。
2.思路
先输入一个数字,如果按照常规思路模拟的话,那需要判断是否日期合适,是否是闰年等等,总之需要的细节很多,我们可以调整思路,先确定月份和日份,而月日为0229恰好回文数为9220 是闰年,因此我们可以先将回文的所有符合条件的数字模拟出来,今儿再判断条件。
3.源码
# include <stdio.h>
int main ()
{
int a[13]={0,31,29,31,30,31,30,31,30,31,31,30,31};
int c;scanf("%d",&c);int cnt=0,cns=0;
int b[500]={0};int d[500]={0};
for(int i=1;i<=12;i++)//月份
{
for(int j=1;j<=a[i];j++)//天
{
int sum,num;
sum=(j%10)*1000+(j/10)*100+(i%10)*10+i/10;
num=sum*10000+i*100+j;
b[cns++]=num;
if(i==j)
{
d[cnt++]=num;
}
}
}
int g=1000000000,h=1000000000;
for(int i=1;i<cns;i++)
{
if(b[i]<=c) continue;
else
{
if(g>b[i]) g=b[i];
}
}
for(int i=1;i<cnt;i++)
{
if(d[i]<=c) continue;
else
{
if(h>d[i]) h=d[i];
}
}
printf("%d\n%d",g,h);
return 0;
}