java实现组合,假设一组数{1,2,3,4,5,6,7,8} ,n = 8 k = 4;

从8个数中取第1个数 比如1,然后在剩下7个里面去第二个数,比如2,然后第三个在剩下的六个数中选择一个数。依次类推

如果第一次去1,第二次取第一个数时,不需要把1再列举进去,会重复

java组合数函数 java实现组合数_java计算组合数


1. import java.util.ArrayList;  
2.   
3. public class Combine {  
4. <Integer>tmpArr = new ArrayList<>();  
5.     public static void main(String[] args) {  
6. com = {1,2,3,4,5,6,7,8};  
7. k = 8;    
8. > com.length || com.length <= 0){  
9.             return ;  
10.         }  
11.         combine(0 ,k ,com);  
12.     }  
13.     public static void combine(int index,int k,int []arr) {  
14. k == 1){  
15. i = index; i < arr.length; i++) {  
16.                 tmpArr.add(arr[i]);  
17.                 System.out.println(tmpArr.toString());  
18.                 tmpArr.remove((Object)arr[i]);  
19.             }  
20. > 1){  
21. i = index; i <= arr.length - k; i++) {  
22.                 tmpArr.add(arr[i]);  
23.                 combine(i + 1,k - 1, arr);  
24.                 tmpArr.remove((Object)arr[i]);  
25.             }  
26.         }else{  
27.             return ;   
28.         }  
29.     }  
30. }