public class Test2 {
static void CalSum(int[] array, int result){
for (int i = 1; i < 1 << array.length; i++){//从1循环到2^N
int sum=0;
String temp = "";
for (int j = 0; j < array.length; j++){
if ((i & 1 << j) != 0){//用i与2^j进行位与运算,若结果不为0,则表示第j位不为0,从数组中取出第j个数
sum += array[j];
temp += array[j]+" ";
}
}
if (sum == result)
System.out.println(temp);//如果和为所求,则输出
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//int[] array={-10,45,35,99,10,6,9,20,17,18};
int[]array={1,2,3,4,5,6,7,8,9};
CalSum(array, 35);
}
}
数组随机求和比较的Java算法
最新推荐文章于 2022-10-11 09:09:10 发布