第1个回答 2011-01-03
借了一个网友的代码 增加了判断 如果侵权 我即刻删去 呵呵
class test{
test(String s){
char[] c=new char[s.length()];
c=s.toCharArray();
System.out.println("排列如下:");
setChar(c,0,s.length()-1);
}
void setChar(char[] cc,int a,int b){
String ss=String.valueOf(cc);
if(a==b)show(cc);
for (int i=a; i<b+1;i++){
char t=cc[a];cc[a]=cc[i];cc[i]=t;
setChar(cc,a+1,b);
cc=ss.toCharArray();
}
}
void show(char[] chars){
if(check(chars))
System.out.println(String.valueOf(chars);
}
static boolean check(char[] chars)
{
if(chars.length >= 2 && chars[1] =='1')
return false;
for (int i = 0; i < chars.length - 1; i++)
if((chars[i] == '3' && chars[i + 1] == '4')
|| (chars[i] == '4' && chars[i + 1] == '3'))
return false;
return true;
}
}
public class AllSet{
public static void main (String[] args) {
int[] a = ;
StringBuffer sb = new StringBuffer();
for(int i = 0; i<5;i++)
sb.append(a[i]);
new test(sb.toString());
}
}