public class Main {
public static void main(String[] args) {
int [] a = {3,5,7,9,6} ;
composite(a,0,3,new int[3]) ;
}
private static void composite(int [] src,int offset,int n,int [] des){
if (n == 0)
{
print(des);
return ;
}
if (offset == src.length)
return ;
//两种情况,offset元素在des中以及不在des中
composite(src,offset+1,n,des.clone()) ; //不在
put(des,src[offset]);
composite(src,offset+1,n-1,des);
}
private static void print(int[] des) {
for (int i:des)
System.out.print(" "+i) ;
System.out.println();
}
private static void put(int[] des, int a) {
int i = 0 ;
while(i < des.length && des[i] != 0)
i ++ ;
if (i < des.length)
des[i] = a ;
}
}