1 solutions

  • 0
    @ 2025-11-5 16:16:49

    C :

    #include<stdio.h>
    int main()
    {
      int year,m=0,n,t,c,d,a=0,b=5,x,i,k;
      scanf("%d",&year);
      n=2010-year;
      for(i=1;i<=n;i++)
      {
       if((year+i)%4==0&&(year+i)%100!=0||(year+i)%400==0)
        m+=366;
       else
       {
        m+=365;
        c=i;
       }
    
      }
      for(i=12*n-1;i>0;i--)
      {
        t=i%12;
        d=i/12+1;
        switch(t)
        {
          case 4:case 6:case 9:case 11:
           b+=30%7;
           b=b%7;
           if(b==5)
             a++;
           m-=31;
           break;
          case 2:
           if(d==c)
           {
            b+=30%7;
            b=b%7;
            m-=28;
           }
            else
            {
            m-=29;
            b+=30%7;
            b=b%7;
            }
           break;
          default:
           b+=31%7;
           b=b%7;
           if(b==5)
             a++;
           m-=30;
          break;
    
        }
      }
      printf("%d",a);
    }
    
    

    C++ :

    #include <iostream>
    using namespace std;
    int main()
    {
    	int n;
    	cin>>n;
    	int w,y,c,m,d,ans=0,flag=0;
    	for (int i=n+1;i<=2010;i++){
    		y=(i-1)%100;
    		c=((i-1)/100)%10+(i-1)/1000*10;
    		for (int j=1;j<=12;j++){
    			if (j==1){
    				m=13;
    				y--;
    				flag=1;
    			} 
    			if (j==2)
    				continue;
    			else if(j>=3){
    				m=j;
    				if (flag){
    					y++;
    					flag--; 
    				} 
    			}	
    			w=(y+y/4+c/4-(2*c)+((26*(m+1))/10)+30-1)%7;
    			if (w==5)
    				ans++;
    		}
    	}
    	cout<<ans<<endl;
    	return 0;
    }
    
    • 1

    Information

    ID
    17639
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By