我们可以取两条线段的中点,若重合就让第二条线段的中点+1
$Q:$中点+1后不在线段上怎么办?
$A:$由于C++整数除法自动省略小数,也就是向下取整,若线段长度大于1,那么中点+1后一定不会超出线段,若线段长度为1,即$l+1=r$,那么$\left\lfloor\dfrac{l+r}{2}\right\rfloor=l$,所以中点$+1=r$,也不会超出线段,所以中点+1后无论如何都在线段上,符合题意
代码如下
1 |
|
我们可以取两条线段的中点,若重合就让第二条线段的中点+1
$Q:$中点+1后不在线段上怎么办?
$A:$由于C++整数除法自动省略小数,也就是向下取整,若线段长度大于1,那么中点+1后一定不会超出线段,若线段长度为1,即$l+1=r$,那么$\left\lfloor\dfrac{l+r}{2}\right\rfloor=l$,所以中点$+1=r$,也不会超出线段,所以中点+1后无论如何都在线段上,符合题意
代码如下
1 |
|