public class Main { static int arr[]= {1,2,3,4,5}; // S集合 static int ans[]=new int[3]; // 從集合中取三個的組合 static int check[]=new int[5]; // 檢查該數是否在ans[]集合中 public static void main(String[] args) { backtracking(0); } public static void backtracking(int n) { if(n==3) { // 若dimension維度是第三層代表找完答案依序印出並結束遞迴 for(int i=0;i<3;i++) { System.out.print(ans[i]+" "); } System.out.println(); return; } for(int i=0;i<5;i++) { if(check[i]==0) {// 判斷該數是否已經出現在ans[]中 check[i]=1; ans[n]=arr[i]; backtracking(n+1); check[i]=0; } } } /* 五個數字取三個所有組合(無大小順序限制) 作者:1010 時間:西元 2018 年 11 月 */ }