import java.util.Arrays;
public class RecursiveDemo01 {
public static void main(String[] args) {
//char array[]=new char[5];
int[] a=new int[5];
fun(a,0);
}
//利用递归 对数组每一位赋1~9数字 ,穷举
public static void fun(int[] array,int cur){
if(cur ==5 ){
System.out.println(Arrays.toString(array));
}
else{
for(int i=1;i<10;i++){
array[cur]=i;
fun(array,cur+1);
}
}
}
}
对数组中的每一位赋1~9数字,但不能重复的递归方法:
public class Daifenshu {
public static int[] a=new int[9];
public static boolean[] b=new boolean[9]; //用于监测某个数字是否已经被使用
public static void main(String[] args) {
dfs(0,9);
}
static void dfs(int start,int n){
if(start==9){
System.out.println(Arrays.toString(a));
}
else{
for(int i=0;i<n;i++){
if(b[i]) continue;
a[start]=i+1;
b[i]=true; //使用过一个数字,就给对应数字加以标记,true
dfs(start+1,n);
b[i]=false; //一次深度遍历完成后,重新初始化b[] 为false
}
}
}}