/**
需求:用1、2、3、4这四个数字,用java写一个main函数打印出所有不同的排序,
如:1234,1243等要求:“4”不能在第一位,“1”与“3”不能相连
思路:用for嵌套循环便利所有结果,把满足条件的打印出来
*/
class ArrayTest4
{
public static void main(String[] args)
{
char[] ch=new char[]{'1','2','3','4','5'};
int rem=0;
for(int te1=0;te1<ch.length;te1++) //第一位数字,从数组的第一个字符开始直到最后一个字符
{
for(int te2=0;te2<ch.length;te2++) //第二位数字,从第一个与ch[te1]不重复的字符开始直到最后一个字符
{
if(te2!=te1)
{
for(int te3=0;te3<ch.length;te3++)
{
if((te3!=te1)&&(te3!=te2))
{
for(int te4=0;te4<ch.length;te4++)
{
if((te4!=te1)&&(te4!=te2)&&(te4!=te3))
{
for(int te5=0;te5<ch.length;te5++)
{
if((te5!=te1)&&(te5!=te2)&&(te5!=te3)&&(te5!=te4))
{
if((te1!=3)&&!((te1==0&&te2==2)||(te2==0&&te3==2)||(te1==0&&te5==2)))
{
System.out.print(" "+ch[te1]+ch[te2]+ch[te3]+ch[te4]+ch[te5]);
rem++;
if(rem%5==0)
System.out.println();
}
}
}
}
}
}
}
}
}
}
System.out.print("\n"+rem);
}
}
|