int[] arr = { 1,2,3,4,5, 6, 7,8,9,10,11, 13, 22, 23,28 };
//结果值
Integer num = 13;
List strList = new ArrayList();
for (int i = 0; i < arr.length; i++) {
//获取当前循环第I个参数
int all = arr[i];
//声明拼接
String str = arr[i]+"";
//从后往前遍历
for (int j = arr.length-1; j > i; j--) {
//参数大于规定数值
if (arr[j] > num) {
continue;
}
//两个参数相加大于规定数值
if ((all+arr[j]) > num) {
//将all置为初始状态
all = arr[i];
str = arr[i]+"";
continue;
}
//参数相加
all += arr[j];
str += "-"+arr[j];
if (all == num) {
strList.add(str);
//将all置为初始状态
all = arr[i];
str = arr[i]+"";
}
}
}
//结果 [1-5-4-3, 2-11, 2-6-5, 3-10, 4-9, 5-8, 6-7]
System.out.println(strList);
java笔记 某几个数相加等一一个固定值
于 2019-07-12 09:41:02 首次发布