A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Sword 金牌黑马   /  2013-4-17 10:48  /  1376 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
*题目:两个乒乓球队进行比赛,各出三人。甲队为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";
         }
}

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

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
if(!a.a.equals(a.b)&&!a.b.equals(a.c)&&!a.a.equals("x")
                &&!a.c.equals("x")&&!a.c.equals("z")){     ?????????????这是什么表示方法 能具体讲一讲吗?
回复 使用道具 举报
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";
          }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
殇_心。 发表于 2013-4-17 11:15
import java.util.ArrayList;
public class pingpang {
          String a,b,c;//定义3个人

写的很详细,谢谢
回复 使用道具 举报
Sword 发表于 2013-4-17 11:29
写的很详细,谢谢

还算好。。 这算法比较简单。
回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马