题目:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、212345等,要求:"4"不能在第三位,"3"与"5"不能相连.
package com.order;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("第三个位置是3的情况:");
Method01 method01 = new Method01();
method01.order();
System.out.println("第三个位置是5的情况:");
Method02 method02 = new Method02();
method02.order();
System.out.println("第三个位置既不是3也不是5的情况:");
Method03 method03 = new Method03();
method03.order();
}
}
//第三个位置是3的情况
class Method01{
public void order(){
int[] a={1,2,2,4,5,3};
for(int j=0;j<a.length-1;j++){
for(int k=0;k<a.length-1;k++){
if(k==j)
continue;
for(int l=0;l<a.length-1;l++){
if(l==k||l==j)
continue;
for(int y=0;y<a.length-1;y++){
if(y==l||y==k||y==k||y==j)
continue;
for(int u=0;u<a.length-1;u++){
if(u==y||u==l||u==k||u==j)
continue;
System.out.println(a[j]*100000+a[k]*10000+a[5]
*1000+a[l]*100+a[y]*10+a[u]);
}
}
}
}
}
}
}
//第三个位置是5的情况,没有
class Method02{
public void order(){
int[] a={1,2,2,4,3,5};
for(int j=0;j<a.length-1;j++){
for(int k=0;k<a.length-1;k++){
if(k==j)
continue;
for(int l=0;l<a.length-1;l++){
if(l==k||l==j)
continue;
for(int y=0;y<a.length-1;y++){
if(y==l||y==k||y==k||y==j)
continue;
for(int u=0;u<a.length-1;u++){
if(u==y||u==l||u==k||u==j)
continue;
//if(a[j]!=a[4]&&a[k]!=a[4]&&a[l]!=a[4]&&a[y]!=a
[4]&&a[u]!=a[4])
System.out.println(a[j]*100000+a[k]*10000+a[5]
*1000+a[l]*100+a[y]*10+a[u]);
}
}
}
}
}
}
}
//不是第三个位置既也不是3也不是5的情况
class Method03{
public void order(){
int[] a={3,1,2,2,4,5};
//最后一个for循环确定第三个位置上的数(i)
for(int i=1;i<a.length-1;i++)
//前两个for循环确定前两个数(j k)
for(int j=0;j<a.length-1;j++){
if(j==i)
continue;
for(int k=0;k<a.length-1;k++){
if(k==j||k==i||j==i)
continue;
//后三个for循环确定最后3个数
for(int l=1;l<a.length;l++){
if(l==i||l==j||l==k||j==i)
continue;
for(int o=1;o<a.length;o++){
if(o==l||o==k||o==j||o==i||j==i)
continue;
for(int u=1;u<a.length;u++){
if(u==o||u==l||u==k||u==j||u==i||j==i)
continue;
if(a[i]!=4)
System.out.println(a[j]*100000+a[k]
*10000+a[i]*1000+a[l]*100+a[o]*10+a[u]);
}
}
}
}
}
}
}