3对情侣参加婚礼,新郎为A、B、C. 新娘为X、Y、Z. A说他与X结婚,X说她与C结婚,C说Z是他的新娘。现知他们都在开玩笑。请编程配对。怎么写啊,怎么感觉一点思路都没- -!

解决方案 »

  1.   

    很简单的几个if语句,已知(x!=a && x!=c)那就说明x==b  
                         (z!=c && x!=c)  那就说明y==c
                         综合上面条件可是出 z==a
      

  2.   

    楼上说的我也晓得,可是那样做不就和以前做数学题目一样了吗?现在就是想用for循环一个个的去遍历
      

  3.   

    public class Female { private String name;

    public Female(String name)
    {
    this.name = name;
    }

    public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    }
    }public class Male { private String name; public Male(String name)
    {
    this.name = name;
    }

    public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    }

    }public class Lover { private Male male;

    private Female female;

    public Lover(Male male, Female female)
    {
    this.female = female;
    this.male = male;
    } public boolean isLiar(Male male, Female female)
    {
    if(male.getName().equalsIgnoreCase("A")&&female.getName().equalsIgnoreCase("X")
    ||male.getName().equalsIgnoreCase("B")&&female.getName().equalsIgnoreCase("Y")
    ||male.getName().equalsIgnoreCase("C")&&female.getName().equalsIgnoreCase("Z"))
    {
    return true;
    }
    else
    {
    return false;
    }
    }

    public Male getMale() {
    return male;
    } public void setMale(Male male) {
    this.male = male;
    } public Female getFemale() {
    return female;
    } public void setFemale(Female female) {
    this.female = female;
    }
    }
      

  4.   

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;public class TestLover { public static void main(String[] args) {

    //存放男人的list
    List<Male> mList = new ArrayList<Male>();

    //存放女人的list
    List<Female> fList = new ArrayList<Female>();

    //存放情侣的list
    List<Lover> lList = new ArrayList<Lover>();

    //new出吹牛的几个人并放入相对应的list
    //其实可以把男人和女人做成一个class,但是在配对的时候会麻烦些
    Male a = new Male("A");
    mList.add(a);
    Male b = new Male("B");
    mList.add(b);
    Male c = new Male("C");
    mList.add(c);
    Female x = new Female("X");
    fList.add(x);
    Female y = new Female("Y");
    fList.add(y);
    Female z = new Female("Z");
    fList.add(z);

    //两层for循环进行配对,放入一个list,但是这个list中情侣会有重复现象
    //因为一个人是不能同时出现在两对情侣中的,实行一夫一妇制
    for (Iterator<Male> iterator = mList.iterator(); iterator.hasNext();) {
    Male m = (Male) iterator.next();
    Lover lover = null;
    for (Iterator<Female> iterator2 = fList.iterator(); iterator2.hasNext();) {
    Female f = (Female) iterator2.next();
    lover = new Lover(m, f);
    if(lover.isLiar(m, f))
    {
    continue;
    }
    else
    {
    lList.add(lover);
    //打印出有可能是情侣的情侣,
    System.out.print("===>>"+lover.getMale().getName());
    System.out.println("===>>"+lover.getFemale().getName());
    }
    }
    }
      

  5.   

    //分别将一个人同时出现在多对情侣的组合分别放入一个数组
    List<Lover>  l1 = new ArrayList<Lover> ();
    l1 = lList.subList(0, 2);
    List<Lover>  l2 = new ArrayList<Lover> ();
    l2 = lList.subList(2,4);
    List<Lover>  l3 = new ArrayList<Lover> ();
    l3 = lList.subList(4, lList.size());
    for (Iterator<Lover> iterator1 = l1.iterator(); iterator1.hasNext();) {
    Lover lover1 = (Lover) iterator1.next();
    for (Iterator<Lover> iterator2 = l2.iterator(); iterator2.hasNext();) {
    Lover lover2 = (Lover) iterator2.next();
    if(lover1.getMale().getName()==lover2.getMale().getName()
    ||lover1.getFemale().getName() == lover2.getFemale().getName())
    {
    continue;
    }
    else
    {
    for (Iterator<Lover> iterator3 = l3.iterator(); iterator3.hasNext();) {
    Lover lover3 = (Lover) iterator3.next();

    if(lover1.getMale().getName()==lover2.getMale().getName()
    ||lover1.getFemale().getName() == lover2.getFemale().getName()
    ||lover1.getMale().getName()==lover3.getMale().getName()
    ||lover1.getFemale().getName() == lover3.getFemale().getName()
    ||lover2.getFemale().getName() == lover3.getFemale().getName()
    ||lover2.getMale().getName()==lover3.getMale().getName())
    {
    //如果某个人同时出现在一对以上的情侣中,直接跳出此次循环
    continue;
    }
    else
    {
    System.out.print(lover1.getMale().getName());
    System.out.println(lover1.getFemale().getName());
    System.out.print(lover2.getMale().getName());
    System.out.println(lover2.getFemale().getName());
    System.out.print(lover3.getMale().getName());
    System.out.println(lover3.getFemale().getName());
    }
    }
    }
    }
    }
    }
    }
      

  6.   

    这是一个java Drools规则引擎的问题,LZ可以找一下这方面的东西。