Java 如何找到数组的每个子集的和

Java 如何找到数组的每个子集的和,java,Java,我试图在下面的java代码中找到每种代码的总和。我应该在这段代码中做什么更改 import java.io.IOException; class as { static void printSubsets(int set[]) { int n = set.length; for (int i = 0; i < (1 << n); i++) { for (int j = 0; j < n; j++) {

我试图在下面的java代码中找到每种代码的总和。我应该在这段代码中做什么更改

import java.io.IOException;

class as {

    static void printSubsets(int set[]) {
        int n = set.length;
        for (int i = 0; i < (1 << n); i++) {
            for (int j = 0; j < n; j++) {
                if ((i & (1 << j)) > 0) {
                    System.out.print(set[j] + " ");
                }
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        int set[] = { 1, 2, 3 };
        printSubsets(set);
    }
}
我想用子集的每个元素乘以它的最后一个数,例如

1*1=1    
2*2=4    
1*2+2*2=6    
3*3=9

likewise all elements 
最后生成所有这些子集的总和
1+4+6+9+…
依此类推


上面的代码也按顺序打印空集和子集。如何编辑此程序以进行更改,使其不打印空集和随机子字符串。

据我所知,您希望将所有元素相乘,并将迭代的每个步骤和结果打印出来。给你:

static void printSubsets(int set[]) {
    int sum = 0;
    for (int i=0; i<set.length; i++) {
        for (int j=i; j<set.length; j++) {
            int var = set[i] * set[j];
            sum += var;
            System.out.println("( " + set[i] + " * " + set[j] + " = " + var + " ) -> sum=" + sum);
        }
    }
    System.out.println("final sum=" + sum);
}
静态void打印子集(int集[]){
整数和=0;

对于(int i=0;我不确定“同样所有元素”是什么意思是。你也能举一个例子吗?这意味着所有的子串产生为1*1=1*2*2=4*2+2*2=6*3=9*1+3*3=12*2+3*3=15*3+2*3+3*3=18意味着每个元素都乘以最后一个数字,所以最后的输出应该打印为和1+4+6+9+12+15+18=65我想他是说他想要所有的子串(“子串”).然后他想用每个子集中的每个元素乘以最后一个元素。由于集合通常不是有序的,我不知道“最后一个”到底是什么元素。然后他想把所有这些产品加起来。我想。真的不确定。我希望人们知道我们有数学语言的原因是因为英语(和其他自然语言)在这方面往往不精确。
static void printSubsets(int set[]) {
    int sum = 0;
    for (int i=0; i<set.length; i++) {
        for (int j=i; j<set.length; j++) {
            int var = set[i] * set[j];
            sum += var;
            System.out.println("( " + set[i] + " * " + set[j] + " = " + var + " ) -> sum=" + sum);
        }
    }
    System.out.println("final sum=" + sum);
}