查找集合的子集

    xiaoxiao2022-07-03  176

    查找集合的子集

    前一段时间,我们离散老师让用代码写找集合的所有子集,代码如下

    public class TTTT1 { public static void main(String[] args) { int[] t = {1,2,3,4,5}; int tt = (int)Math.pow(2, t.length);//算出t的子集的总个数 for(int i=0 ; i <tt; i++) { int a = 1; System.out.print("{ "); for(int j = 0 ; j < t.length ; j++) { if((i & a) != 0) { System.out.print(t[j] + " "); } a = a << 1; } System.out.print("}"); System.out.println(); } } }

    首先我随意定义了一个有5个元素的集合,用 Math.pow(a,b)算出这个集合的子集的个数。 第一个for循环将所有的子集全部输出,用第二个for循环控制位运算,将其二进制码的和运算的结果为1 的位数对应的元素输出。 例如当i=1时

    然后将a=1换为二进制数为 00001 将其进行二进制的和运算无论当1放在和运算的哪一个上面,它与00001的和运算只有第一个不为0,所以输出数组中的第一个元素。以此类推。

    最新回复(0)