给定六个数字,1,3,9,27,81,243,从这六个数中每次取一个数或几个数,不同的数求和(每个数只能取一个),可以得到一个新数,总共可以得到多少新数,利用Java代码实现。
输出格式:
取的数字是:1,和为:1
取的数字是:2,和为:2
......
取的数字是:1,3,和为:4
......
private static int[] b;
private static int count = 0;
public static void main(String[] args) {
int[] t ={1,3,9,27,81,243};
for (int i=1;i<=t.length;i++){
System.out.println("现在取"+i+"位数");
test(t,0,0,i);
}
System.out.println("一共有"+count+"种");
}
public static void test(int[] a, int count1, int count2, int except){
if (count2 == except){
int sum = 0;
System.out.print("取的数字是:");
for (int i:b){
System.out.print(i+",");
sum += i;
}
System.out.println("和为:"+sum);
count++;
}else{
if (count2==0){
b=new int [except];
}
for (int i = count1; i<a.length;i++){
b[count2] = a[i];
test(a,i+1,count2+1,except);
}
}
}