当前位置: 代码迷 >> Java相关 >> A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能 ...
  详细解决方案

A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能 ...

热度:368   发布时间:2011-05-16 09:40:53.0
A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:
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
就是一种可能的情况。
搜索更多相关的解决方案: 计算机  有一个人  同学  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-05-16 06:43:23
Alar30

等 级:贵宾
威 望:10
帖 子:875
专家分:1413
注 册:2009-9-8
  得分:5 
来看LS的ID的。。。
----------------解决方案--------------------------------------------------------
public class Print{
   public class void main(String args[]){
     System.out.println("你在考试?????????");

}
}
----------------解决方案--------------------------------------------------------
回复 4楼 w123012306
这是一个比赛的题
----------------解决方案--------------------------------------------------------
回复 4楼 w123012306
是的
----------------解决方案--------------------------------------------------------
呵呵,
----------------解决方案--------------------------------------------------------
回复 7楼 huwengui
你来了  也不给我做题
----------------解决方案--------------------------------------------------------
回复 2楼 付政委
谢谢啊
----------------解决方案--------------------------------------------------------
程序代码:
public class ComputerCompetition {
    private static int get(int index, int value) {
        return (value & (1 << index)) >> index;
    }
   

    private static boolean isZero(int index, int value) {
        return get(index, value) == 0;
    }
   

    private static boolean isOne(int index, int value) {
        return get(index, value) == 1;
    }
   

    public static void main(String[] args) {
        int proba = 0x3ff;
        for(int i = 0; i <= proba; i++) {
            if(isOne(0, i) && isOne(1, i) || isZero(0, i)) {
                if(isZero(2, i) && isZero(3, i) || isOne(2, i)) {
                    if(isOne(0, i) && isZero(2, i) || isZero(0, i) && isOne(2, i)) {
                        if((isOne(1, i) || isOne(3, i)) && (isOne(1, i) && isZero(3, i)) || (isZero(1, i) && isOne(3, i))) {
                            int k = 0;
                            for(int j = 3; j < 8; j++)
                                if(isOne(j, i))
                                    k++;
                            if(k > 1) {
                                if(isOne(2, i) && isOne(6, i) || isZero(2, i) && isZero(6, i)) {
                                    k = 0;
                                    for(int j = 2; j <= 8; j += 2)
                                        if(isOne(j, i))
                                            k++;
                                    if(k < 3) {
                                        if(isOne(4, i) && isOne(5, i) && isOne(6, i) || isZero(4, i)) {
                                            if(isOne(5, i) && isZero(6, i) && isZero(7, i) || isZero(5, i)) {
                                                if(isZero(8, i) && isZero(9, i) && isOne(7, i) || isOne(8, i) || isOne(9, i)) {
                                                    for(int j = 0; j < 10; j++)
                                                        if(isOne(j, i))
                                                            System.out.printf("%-4c", j + 'A');
                                                    System.out.println();
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}



----------------解决方案--------------------------------------------------------
  相关解决方案