10.A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:

package s5;

public class test10 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        /*
         * A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:
         * 1. 如果A参加,B也参加; 2. 如果C不参加,D也不参加; 3. A和C中只能有一个人参加; 4. B和D中有且仅有一个人参加; 5.
         * D、E、F、G、H 中至少有2人参加; 6. C和G或者都参加,或者都不参加; 7. C、E、G、I中至多只能2人参加 8.
         * 如果E参加,那么F和G也都参加。 9. 如果F参加,G、H就不能参加 10. 如果I、J都不参加,H必须参加
         * 请编程根据这些条件判断这10名同学中参赛者名单。如果有多种可能,则输出所有的可能情况。
         * 每种情况占一行。参赛同学按字母升序排列,用空格分隔。
         * 比如: C D G J 就是一种可能的情况。
         * 要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”
         * 中即可。相关的工程文件不要拷入。请不要使用package语句。
         */

        for(int a=0;a<2;a++)
            for(int b=0;b<2;b++)
                if((a==1&&b==1)||(a==0&&b==1)||(a==0&&b==0))//如果A参加,B也参加;                    
                for(int c=0;c<2;c++)    
                    if(a+c<=1)// A和C中只能有一个人参加;
                    for(int d=0;d<2;d++)
                        if((c==0&&d==0)||(c==1&&d==1)||(c==1&&d==0))// 如果C不参加,D也不参加;        
                            if(b+d==1)//B和D中有且仅有一个人参加;
                        for(int e=0;e<2;e++)
                            for(int f=0;f<2;f++)
                                for(int g=0;g<2;g++)
                                    if(c+g==2||c+g==0)//C和G或者都参加,或者都不参加;
                                        if(e+f+g==3||(e==0&&f==0&&g==0)||(e==0&&f==0&&g==1)||(e==0&&f==1&&g==0)||(e==0&&f==1&&g==1))//如果E参加,那么F和G也都参加。
                                    for(int h=0;h<2;h++)
                                        if(d+e+f+g+h>=2)// D、E、F、G、H 中至少有2人参加;
                                            if((f==1&&g==0&&h==0)||(f==0&&g==0&&h==0)||(f==0&&g==0&&h==1)||(f==0&&g==1&&h==0)||(f==0&&g==1&&h==1))//如果F参加,G、H就不能参加
                                        for(int i=0;i<2;i++)
                                            if(c+e+g+i<=2)//C、E、G、I中至多只能2人参加  
                                            for(int j=0;j<2;j++)
                                                if((i==0&&j==0&&h==1)||(i==1&&j==0&&h==0)||(i==1&&j==0&&h==1)||(i==1&&j==1&&h==0)||(i==1&&j==1&&h==1)||(i==0&&j==1&&h==0)||(i==0&&j==1&&h==1)){//如果I、J都不参加,H必须参加
                                                    //String s="";
                                                    if(a==1){
                                                        System.out.print('A');                                                                
                                                    }    
                                                    if(b==1){
                                                        System.out.print('B');                                                                
                                                    }
                                                    if(c==1){
                                                        System.out.print('C');                                                                
                                                    }
                                                    if(d==1){
                                                        System.out.print('D');                                                                
                                                    }
                                                    if(e==1){
                                                        System.out.print('E');                                                                
                                                    }
                                                    if(f==1){
                                                        System.out.print('F');                                                                
                                                    }
                                                    if(g==1){
                                                        System.out.print('G');                                                                
                                                    }
                                                    if(h==1){
                                                        System.out.print('H');                                                                
                                                    }
                                                    if(i==1){
                                                        System.out.print('I');                                                                
                                                    }
                                                    if(j==1){
                                                        System.out.print('J');                                                                
                                                    }
                                                    System.out.println();
                                                            
                                                    
                                                }        
    }

}

你可能感兴趣的:(蓝桥杯第二届)