判断对称日

本题不用考虑是否闰年即二月28还是29天,这对本题无影响(因为如果是29日,对称日的年份应该是92**年,超出了题目的3000年),那么可以分成三类,1个月31天的,1个月30天的,和1个月28天的。然后对年份进行依次循环,在依次判断这一年的1到12月天数,最后判断月数和天数的对称组合数是否和年份相同,输出即可。
 

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
   long int A[1000]={0},B[1000]={0},C,D,E,sum=0,real=0,A1;
   for(int q=1000;q<=3000;q++)
   {

       for(int w=1;w<=12;w++)
       {
           if(w==1||w==3||w==5||w==7||w==8||w==10||w==12)
           {
                for(int e=1;e<=31;e++)
                {
                    A1=q*10000;
                     if(w<10)
                    A1=A1+w*100;
                    if(w>=10)
                    A1=A1+w*100;
                    A1=A1+e;
                    C=A1;
            for(int o=1;;o++)
            {
            A[o]=C%10;
            C=C/10;
            D=o;
            if(C==0)
                break;
            }
            E=D;
            for(int o=1;o<=D;o++)
            {

              for(int t=(E-o);t>0;t--)
            {
                A[o]=A[o]*10;
            }
            real=real+A[o];
            }
            if(real==A1)
            {
                sum=sum+1;
                printf("%dn",A1);
            }
            real=0;

           }
           }
        else
           {    int z=30;
               if(q%4!=0&&w==2)
                z=28;
               for(int e=1;e<=z;e++)
               {
                    A1=q*10000;
                     if(w<10)
                    A1=A1+w*100;
                    if(w>=10)
                    A1=A1+w*100;
                    A1=A1+e;
                    C=A1;
            for(int o=1;;o++)
            {
            A[o]=C%10;
            C=C/10;
            D=o;
            if(C==0)
                break;
        }
        E=D;
     for(int o=1;o<=D;o++)
     {

              for(int t=(E-o);t>0;t--)
            {
                A[o]=A[o]*10;
            }
            real=real+A[o];
     }
        if(real==A1)
            {
                sum=sum+1;
                printf("%dn",A1);
                }
        real=0;

           }

       }
   }
   }
     printf("一共有%d次世界完全对称日",sum);
    return 0;
}