二分再也不敢写(l+r)/2了

震惊!整体二分怒调1小时RE原因竟是...

test:

i=-999999

int a=i/2;

int b=i>>1

cout<<a<<" "<<b;


answer:a=-499999,b=-500000

强行解释一波

int类型的取整是向0取整,即使被取整的数绝对值变小

而右移是向下取整,即使被取整的数值变小

对于正数时两者相同,而到了负数......

猜你喜欢

转载自www.cnblogs.com/stepsys/p/10506759.html
今日推荐