黑马程序员技术交流社区

标题: 一道算法题 [打印本页]

作者: Sword    时间: 2013-4-17 10:48
标题: 一道算法题
/*
*题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
*已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
*/
import java.util.ArrayList;
public class pingpang {
         String a,b,c;
         public static void main(String[] args) {
          String[] op = { "x", "y", "z" };
          ArrayList<pingpang> arrayList=new ArrayList<pingpang>();
          for (int i = 0; i < 3; i++)
           for (int j = 0; j < 3; j++)
            for (int k = 0; k < 3; k++) {
                    pingpang a=new pingpang(op[i],op[j],op[k]);
             if(!a.a.equals(a.b)&&!a.b.equals(a.c)&&!a.a.equals("x")
               &&!a.c.equals("x")&&!a.c.equals("z")){
              arrayList.add(a);
             }
            }
          for(Object a:arrayList){
          System.out.println(a);
          }
         }
         public pingpang(String a, String b, String c) {
          super();
          this.a = a;
          this.b = b;
          this.c = c;
         }
         @Override
         public String toString() {
          // TODO Auto-generated method stub
          return "a的对手是"+a+","+"b的对手是"+b+","+"c的对手是"+c+"\n";
         }
}

程序看不懂,求详细的解释,最好写清楚注释

作者: 偏執旳、靑春    时间: 2013-4-17 10:54
if(!a.a.equals(a.b)&&!a.b.equals(a.c)&&!a.a.equals("x")
                &&!a.c.equals("x")&&!a.c.equals("z")){     ?????????????这是什么表示方法 能具体讲一讲吗?
作者: 殇_心。    时间: 2013-4-17 11:15
import java.util.ArrayList;
public class pingpang {
          String a,b,c;//定义3个人
          public static void main(String[] args) {
           String[] op = { "x", "y", "z" };
           ArrayList<pingpang> arrayList=new ArrayList<pingpang>();
           for (int i = 0; i < 3; i++)//3个for语句代表遍历3个人可能的对手
            for (int j = 0; j < 3; j++)
             for (int k = 0; k < 3; k++) {
                     pingpang a=new pingpang(op[i],op[j],op[k]);//创建对象a,对象a有3个人
              if(!a.a.equals(a.b)&&!a.b.equals(a.c)&&!a.a.equals("x")
                &&!a.c.equals("x")&&!a.c.equals("z"))
                      //比较。首先对象a中的a人不能和b人相同,也不能和c人相同
                            //   a人的对手不能是x,c人对手不能是x和z
                    {
               arrayList.add(a);
              }
             }
           for(Object a:arrayList){
           System.out.println(a);
           }
          }
          public pingpang(String a, String b, String c) {//构造函数  a,b,c代表对手
           super();
           this.a = a;
           this.b = b;
           this.c = c;
          }
          @Override
          public String toString() //复写toString方法
          {
           // TODO Auto-generated method stub
           return "a的对手是"+a+","+"b的对手是"+b+","+"c的对手是"+c+"\n";
          }
}

作者: Sword    时间: 2013-4-17 11:29
殇_心。 发表于 2013-4-17 11:15
import java.util.ArrayList;
public class pingpang {
          String a,b,c;//定义3个人

写的很详细,谢谢
作者: 殇_心。    时间: 2013-4-17 15:16
Sword 发表于 2013-4-17 11:29
写的很详细,谢谢

还算好。。 这算法比较简单。
作者: 黄玉昆    时间: 2013-4-18 20:16
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2