80分求助

P2010 [NOIP2016 普及组] 回文日期

Wxt0906 @ 2024-08-03 10:53:18

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdio>
using namespace std;
int a[105],b[105],n1,n2,ans,n,m;
int s[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int run(int x)
{
    if(x%4==0&&x%100!=0||x%400==0)
      return 1;
    return 0;
}
int main()
{
    cin>>n>>m;
    n1=n/10000;
    n2=m/10000;
    for(int i=n1;i<=n2;i++)
    {

        for(int j=1;j<=12;j++)
        {
            int t=0;
            if(run(i)==1)
            {
               t=1;
            }  
            t+=s[j];
            for(int k=1;k<=t;k++)
            {
                int date=(k%10)*1000+(k/10)*100+(j%10)*10+j/10;
                int zui=i*10000+j*100+k;
                if(zui>=n&&zui<=m)
                {
                    if(date==i)
                      ans++;
                }
            }
        }
    }
    cout<<ans;
    return 0;

}

by lonely_star @ 2024-08-03 11:07:49

第25行 原码:

if(run(i)==1)

改后:

if(run(i)==1&&j==2)

只有二月有第29天,而你判了闰年所有天数


|