我想知道断点被击中的次数。
问题是:对于前4次点击中的每一次,记下调整器中可以看到的currentMin,当前Max和mid的值。
我拥有的值是:n = 40,currentMin = 0,currentMax = 40,mid = 20。
这是四次点击吗?或者我是否需要使用上述值四次绕过周期?
public class Breakpoint {
public int breakp() {
int n = 40;
int currentMin = 0;
int currentMax = n;
while (currentMin < currentMax) {
int mid = (currentMin + currentMax) / 2;
if (mid * mid + mid + 1 <= n)//breakpoint is on this line {
currentMin = mid;
} else {
currentMax = mid;
}
}
return currentMin;
}
public static void main(String[] args) {
Breakpoint b = new Breakpoint();
int a = b.breakp();
System.out.println(a);
}
}
答案 0 :(得分:1)
我在追踪该计划时收到的前四次点击是:
min=0, max=40, mid=20
min=0, max=20, mid=10
min=0, max=10, mid=5
min=5, max=10, mid=7
您需要四次使用该功能才能获得这些值。
答案 1 :(得分:1)
如果断点发布在此行:
if (mid * mid + mid + 1 <= n){
4次迭代后,值应为..
n:40 mid:7 currentMin:5 currentMax:10