永发信息网

红黑积木求和 c++ java

答案:1  悬赏:70  手机版
解决时间 2021-01-14 03:51
  • 提问者网友:温柔港
  • 2021-01-13 05:33
红黑积木求和 c++ java
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-01-13 06:57
import java.util.Scanner;

public class Test {

public static void main(String[] args) {
int x = 10;
int y = -61;
Scanner s = new Scanner(System.in);
x = s.nextInt();
y = s.nextInt();
int[] a = new int[17];
Test t = new Test();
t.diff(x,y, a,0);
System.out.println(max);
s.close();
}
static int max = -1;
void diff(int x,int y,int[] a,int length) { //全排列

if(length==a.length) {
// 判断任意7个小于0
if(judge(a)) {
int max2 =qiuhe(a,0,a.length);
if(max2>max) {
max = max2;
}
}
}else {
a[length]=x;
diff(x,y,a,length+1);
a[length]=y;
diff(x,y,a,length+1);
}
}
boolean judge(int[] a) {// 判断任意7个小于0
boolean result = true;
for(int i=0;i if(qiuhe(a,i,i+7)>=0) {
result = false;
}
}
return result;
}
int qiuhe(int[] a,int from,int to) { //求数组的和,从下标为from的位置到to的位置
int sum = 0;
for(int x=from;x sum+=a[x];
}
return sum;
}

}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯