返回信息流rt,原题是x的平方根,在定义mid时用>>1会超出int范围但是用/2就不会,具体代码如下
int mySqrt(int x)
{
int left=0,right=x,ans=-1;
while(left<=right)
{
int mid=(right-left)>>1+left;
if((long long int)mid*mid>x) right=mid-1;
else
{ ans=mid;
left=mid+1;
}
}
return ans;
}
错误信息为Line 8: Char 33: runtime error: shift exponent 32767 is too large for 32-bit type 'int' (solution.cpp)
我寻思32767怎么也没有超过int的最大值吧,很不能理解
这是一条镜像帖。来源:北邮人论坛 / cpp / #102379同步于 2022/11/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【问题】对一个数用>>1和/2结果不一样
Karady
2022/11/21镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。