java--演算法--遞迴演算法
阿新 • • 發佈:2021-07-10
- 遞迴的介紹:
-
遞迴演算法的實際應用
-
-
package com.model.recursion; import java.util.Arrays; /** * @Description:測試類 * @Author: 張紫韓 * @Crete 2021/7/10 16:15 * 遞迴演算法實現迷宮問題 */ public class RecursionDemo02 { public static void main(String[] args) { // 製作一個地圖、 int[][] map = new int[8][7];
-
-
-
package com.model.recursion; /** * @Description:測試類 * @Author: 張紫韓 * @Crete 2021/7/10 17:27 * 遞迴實現八皇后問題 */ public class RecursionDemo03 { public static void main(String[] args) { RecursionDemo03 recursionDemo03 = new RecursionDemo03(); recursionDemo03.place(0); System.out.println("一共有幾種擺放方式:"+count); } int max=8; int[] arr=new int[max]; //儲存結果的陣列 static int count=0; public void print(){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+"\t"); } System.out.println(); } //檢查是否和前面的棋子同列或同斜線 public boolean check(int n){ for (int i = 0; i < n; i++) { if (arr[i]==arr[n]||Math.abs(n-i)==Math.abs(arr[n]-arr[i])){ return false; } } return true; } // 放置棋子 public void place(int n){ if (n==max){ print(); count++; return; } for (int i = 0; i < max; i++) { arr[n]=i; if (check(n)){ place(n+1); } } } }
-