您的位置:首页 > 编程语言 > Java开发

java实现1、2、2、3、4、5排列问题

2015-04-12 23:26 309 查看
用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求: "4 "不能在第三位, "3 "与 "5 "不能相连.

class TestSort{

public static void main(String args[]){

int[] array={1,2,2,3,4,5};

int[] result={0,0,0,0,0,0};

int totle=callBack(array,result,0);

System.out.println("总数为:"+totle);

}

public static int callBack(int[] array,int[] result,int index){

if(index>=array.length){

for(int i=0;i<result.length;i++){

System.out.print(result[i]);

}

System.out.println();

return 1;

}

int size=0;

for(int i=0;i<array.length;i++){

if(array[i]==0){

continue;

}else if(index==2&&i==4){

continue;

}else if(index>0&&array[i]+result[index-1]==8){ //3+5则等于8

continue;

}else if(i==2&&array[1]>0){ //防止出现两次同样的情况,主要是有两个2

continue;

}else{

result[index]=array[i];

array[i]=0;

size=size+callBack(array,result,index+1);

array[i]=result[index]; //回调后要还原

}

}

return size;

}

}

结果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: