1 条题解

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

    C :

    #include<stdio.h>
    
    int main()
    {
    	int p,e,i,d,j,c=0;
    	while(scanf("%d%d%d%d",&p,&e,&i,&d),p!=-1)
    	{
    		for(j=d+1;;j++)
    			if((j-p)%23==0&&(j-e)%28==0&&(j-i)%33==0)
    				break;
    		printf("Case %d: the next triple peak occurs in %d days.\n",++c,j-d);
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    
    int main()
    {
    	int p,e,i,d,j,c=0;
    	while(scanf("%d%d%d%d",&p,&e,&i,&d),p!=-1)
    	{
    		for(j=d+1;;j++)
    			if((j-p)%23==0&&(j-e)%28==0&&(j-i)%33==0)
    				break;
    		printf("Case %d: the next triple peak occurs in %d days.\n",++c,j-d);
    	}
    	return 0;
    }
    

    Java :

    import java.util.*;
    
    public class Main{
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            int count = 1;
            while(in.hasNextInt()){
                int p=in.nextInt()%23;
                int e=in.nextInt()%28;
                int i=in.nextInt()%33;
                int d=in.nextInt();
                int day = 0;
                int j = 1, k = 1, l = 1;
                if(p==-1&&e==-1&&i==-1&&d==-1) break;
                while((28*33*j)%23!=1)
                    j++;
                while((23*33*k)%28!=1)
                    k++;
                while((23*28*l)%33!=1)
                    l++;
                day = (28*33*j*p+23*33*k*e+23*28*l*i)%21252;
                if(day==d)
                    day = 21252;
                else if(day<d)
                    day = 21252-(d-day);
                else
                    day = day-d;
                System.out.println("Case "+count+": the next triple peak occurs in "+day+" days.");
                count++;
            }  
        }  
    }  
    
    • 1

    信息

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