日期:2014-05-20  浏览次数:20757 次

一道java面试题,请帮我解答一下。问题是:六个国家进行比赛,请你安排5场比赛,不能重复!详情如下:
问题:

六个国家进行比赛,请安排5场比赛,不能重复,并在控制台打印


要求运行结果如下:

第1场球赛:
日本=======中国
韩国=======法国
英国=======巴西


第2场球赛:
日本=======法国
中国=======巴西
韩国=======英国


第3场球赛:
日本=======巴西
法国=======英国
中国=======韩国

第4场球赛:
日本=======英国
巴西=======韩国
法国=======中国

第5场球赛:
日本=======韩国
英国=======中国
巴西=======法国
  

 请按照上面要求完成如下代码:




import java.util.Arrays;

public class Test {

public static void main(String[] args) {
String[] team={"日本","韩国","英国","巴西","法国","中国"};
…………
…………
…………
}

}

上面省略号是要完成的代码。

------解决方案--------------------
String[] team={"日本","韩国","英国","巴西","法国","中国"};
ArrayList teamList = new ArrayList();
for(int i = 0;i < team.length;i++){
teamList.add(team[i]);
}
for(int i = 1;i < 6;i++){
System.out.println("第" + i + "场比赛: ");
ArrayList temp = (ArrayList)teamList.clone();
int idx = i;
while(!temp.isEmpty()){
if(idx >= temp.size()){
idx = temp.size() - 1;
}
System.out.println(temp.get(0) + " vs " + temp.get(idx));
temp.remove(idx);
temp.remove(0);
}
}
输出结果不一样,但是每场不重复
------解决方案--------------------

public static void main(String[] args) {
String[] team={"日本","韩国","英国","巴西","法国","中国"};
for(int i=0;i<team.length-1;i++){
System.out.println("第"+(i+1)+"场比赛:");
System.out.println(team[0]+"=========="+team[5]);
System.out.println(team[1]+"=========="+team[4]);
System.out.println(team[2]+"=========="+team[3]);
String last=team[5];
for(int j=5;j>0;j--){
team[j]=team[j-1];
}
team[1]=last;
}
}

打印结果:
第1场比赛:
日本==========中国
韩国==========法国
英国==========巴西
第2场比赛:
日本==========法国
中国==========巴西
韩国==========英国
第3场比赛:
日本==========巴西
法国==========英国
中国==========韩国
第4场比赛:
日本==========英国
巴西==========韩国
法国==========中国
第5场比赛:
日本==========韩国
英国==========中国
巴西==========法国