1 条题解

  • 0
    @ 2024-12-24 9:59:26

    C :

    #include<stdio.h>
    
    int leap(int y)
    {
    	return y%4==0&&y%100!=0||y%400==0?1:0;
    }
    
    int main()
    {
    	int t,y,m,d,i,s;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d-%d-%d",&y,&m,&d);
    		s=6570;
    		if(m==2&&d==29)
    		{
    			if(!leap(y+18))
    				printf("-1\n");
    			else
    			{
    				for(i=y+1;i<=y+18;i++)
    					if(!leap(i))
    						s--;
    				printf("%d\n",s);
    			}
    		}
    		else
    		{
    			if(m<=2)
    			{
    				for(i=y;i<y+18;i++)
    					if(leap(i))
    						s++;
    			}
    			else
    				for(i=y+1;i<=y+18;i++)
    					if(leap(i))
    						s++;
    			printf("%d\n",s);
    		}
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    
    int leap(int y)
    {
    	return y%4==0&&y%100!=0||y%400==0?1:0;
    }
    
    int main()
    {
    	int t,y,m,d,i,s;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d-%d-%d",&y,&m,&d);
    		s=6570;
    		if(m==2&&d==29)
    		{
    			if(!leap(y+18))
    				printf("-1\n");
    			else
    			{
    				for(i=y+1;i<=y+18;i++)
    					if(!leap(i))
    						s--;
    				printf("%d\n",s);
    			}
    		}
    		else
    		{
    			if(m<=2)
    			{
    				for(i=y;i<y+18;i++)
    					if(leap(i))
    						s++;
    			}
    			else
    				for(i=y+1;i<=y+18;i++)
    					if(leap(i))
    						s++;
    			printf("%d\n",s);
    		}
    	}
    	return 0;
    }
    

    Java :

    public class Main {
    public static void main(String[] args) {
    	java.util.Scanner in = new java.util.Scanner(System.in);
    	while (in.hasNext()) {
    		int N=in.nextInt();
    		for(int i=0;i<N;i++) {
    			String [] a=in.next().split("-");
    			int b=Integer.parseInt(a[0]);
    			int c=Integer.parseInt(a[1]);
    			int d=Integer.parseInt(a[2]);
    			int sum=0;
    			if(c==2&&d==29)
    				if((b%4==0&&b%100!=0)||b%400==0) {
    					System.out.println(-1);continue;}
    			for(int n=b;n<=b+17;n++) {
    				if((n%4==0&&n%100!=0)||n%400==0) {
    					sum=sum+366;
    				}
    				else
    					sum=sum+365;
    			}	
    				int n=b;int x=0;
    				for(int j=1;j<c;j++) {
    					if(j==1||j==3||j==5||j==7||j==8||j==10||j==12) {
    						x=x+31;
    					}
    					if(j==4||j==6||j==9||j==11) {
    						x=x+30;
    					}
    					if(j==2) {
    					if((n%4==0&&n%100!=0)||n%400==0){
    						x=x+29;
    					}
    					else 
    						x=x+28;
    					}
    			}
    				x=x+d;
    				sum=sum-x;
    			int f=b+18;
    			for(int j=1;j<c;j++) {
    				if(j==1||j==3||j==5||j==7||j==8||j==10||j==12) {
    					sum=sum+31;
    				}
    				if(j==4||j==6||j==9||j==11) {
    					sum=sum+30;
    				}
    				if(j==2) {
    					if((f%4==0&&f%100!=0)||f%400==0){
    						sum =sum+29;
    					}
    					else 
    						sum=sum+28;
    					}
    				}
    			sum=sum+d;
    			System.out.println(sum);
    		}
    	}
    	in.close();
    }
    }
    
    • 1

    信息

    ID
    1443
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者