• 关于谁来参加会议这个题目的卫条件


    package Meeting;//卫条件练习
    /*
    * 有人邀请A,B,C,D,E,F 6个人参加一项会议,这6个人有些奇怪,因为他们有很多要求,已知:
    1)A,B两人至少有1人参加会议;
    2)A,E,F 3人中有2人参加会议;
    3)B和C两人一致决定,要么两人都去,要么两人都不去;
    4)A,D两人中只1人参加会议;
    5)C,D两人中也只要1人参加会议;
    6)如果D不去,那么E也决定不去。
    那么最后究竟有哪几个人参加了会议呢?
    */
    public class attendeeOfMeeting {

    public static void main(String[] args) {//0代表不去,1代表去
    for(int a=0;a<2;a++){
    for(int b=0;b<2;b++){
    for(int c=0;c<2;c++){
    for(int d=0;d<2;d++){
    for(int e=0;e<2;e++){
    for(int f=0;f<2;f++){
    if(condition(a,b,c,d,e,f)){
    System.out.println("a="+a+",b="+b+",c="+c+",d="+d+",e="+e+",f="+f);
    }
    }
    }
    }
    }
    }
    }
    }

    private static int addGo(int...args){//※可变参数※
    int sum=0;
    for(int i:args){
    if(i==1){//统计有几人去
    sum ++;
    }
    }
    return sum;
    }
    //0--不去,1--去
    private static boolean condition(int a, int b, int c, int d, int e, int f) {
    if( !(addGo(a,b)>=1) ){//卫条件1)A,B两人至少有1人参加会议;
    return false;
    }
    if( !(addGo(a,e,f)==2) ){//卫条件2)A,E,F 3人中有2人参加会议;
    return false;
    }
    if( addGo(b,c)==1 ){//卫条件3)B和C两人一致决定,要么两人都去,要么两人都不去;
    return false;
    }
    if( !(addGo(a,d)==1) ){//卫条件4)A,D两人中只1人参加会议;
    return false;
    }
    if( !(addGo(c,b)==1) ){//卫条件5)C,D两人中也只要1人参加会议;
    return false;
    }
    if( d==0 && e==1 ){//卫条件6)如果D不去,那么E也决定不去。
    return false;
    }
    return true;
    }
    }

  • 相关阅读:
    mysql
    jQuery选择器
    使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)
    MVC2.0==>MVC3.0
    sql 邮件发送测试情况
    C#调用存储过程
    设计模式
    sql 分页
    SQL Server 存储过程(转载)
    sqlitehelper封装
  • 原文地址:https://www.cnblogs.com/1314wamm/p/5600188.html
Copyright © 2020-2023  润新知