递归实现枚举模板:
public class DemoFangeTInshu {
/**
* @param args
*/
static int count=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] data = "0123456789".toCharArray();
int[] da = new int[11];
int t=10;
while(t-->0){
da[t]=(int)data[t]-'0';
System.out.println(da[t]);
}
dfs(da,0,9);
System.out.println(count);
}
private static void dfs(int[] da, int a, int length) {
// TODO Auto-generated method stub
if(a==length){
if(check(da)){
count++;
}
}
else{
for(int i=a;i<=length;i++){
swap(da,i,a);
dfs(da,a+1,length);
swap(da,i,a);
}
}
}
private static void swap(int[] da, int i, int a) {
// TODO Auto-generated method stub
int temp=da[i];
da[i]=da[a];
da[a]=temp;
}
private static boolean check(int[] da) {
// TODO Auto-generated method stub
if(**条件**) //把之间的条件用放在此处
return false;
else return true;
}
}