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

面试问题请大家帮助!
1,2,3,4,5五个数
打印出所有不同的排列
求: "4 "不能在第三位, "3 "与 "5 "不能相连????

------解决方案--------------------
排列组合我都忘记是高中还是大学学的了.
------解决方案--------------------
给出我的答案,我的办法不知道对不对,而且我觉得我这方法很笨,应该有更好的方法。
下面的代码我去掉了空格,可以格式化还原。

public class fun
{
static int x;
public static void fun()
{
for(int i=1;i <=5;i++)
{
for(int j=1;j <=5;j++)
{
if(j!=i)
{
for(int k=1;k <=5;k++)
{
if(k!=j && k!=i && k!=4)
{
for(int m=1;m <=5;m++)
{
if(m!=i && m!=j && m!=k)
{
for(int n=1;n <=5;n++)
{
if(n!=i && n!=j && n!=k && n!=m)
{
if((i*10+j)!=35 && (j*10+k)!=35 && (k*10+m)!=35 && (m*10+n)!=35)
{
if((i*10+j)!=53 && (j*10+k)!=53 && (k*10+m)!=53 && (m*10+n)!=53)
{
x=i*10000+j*1000+k*100+m*10+n;
System.out.println(x);
}}}}}}}}}}}}
public static void main(String[] args)
{
fun();

}
}

我的答案是
12345
12543
13245
13254
14325
14523
15234
15243
21345
21543
23145
23154
24315
24513
25134
25143
31245
31254
31524
31542
32145
32154
32514
32541
34125
34152
34215
34251
34512
34521
41325
41523
42315
42513
43125
43152
43215
43251
45123
45132
45213
45231
51234
51243
51324
51342
52134
52143
52314
52341
54123
54132
54213
54231
54312
54321
------解决方案--------------------

public class NumberOutput {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i =12345;i <=54321;i++)
{
String iStr = i+ " ";
if(iStr.indexOf( "4 ")!=2&&iStr.indexOf( "35 ")==-1)
{
System.out.println(i);
}
}

}

}

------解决方案--------------------
顶下楼上
------解决方案--------------------

public class num {
static int x;
public static void main(String arg[]){
for(int i=1;i <6;i++)
for(int j=1;j <6;j++){
if(i==j)
continue;
for(int k=1;k <6&&k!=4;k++){
if(k==j||k==i)
continue;
for(int m=1;m <6;m++){
if(m==k||m==j||m==i)
continue;
for(int n=1;n <6;n++){
if(n==m||n==k||n==j||n==i)
continue;
if(i+j==8||j+k==8||k+m==8||m+n==8)
continue;
x=i*10000+j*1000+k*100+m*10+n;
System.out.println(x);
}
}
}
}
}
}
------解决方案--------------------

public class Test2
{
public static void main(String[] args)
{
for(int i=1;i <=5;i++)
for(int j=1;j <=5;j++)
for(int k=1;k <=5;k++)