题目描述
implement int sqrt(int x).
Compute and return the square root of x.
public int sqrt(int x) {
int low = 0;
int high = x;
while (low <= high) {
long mid = (low + high) / 2;//防止溢出
if (mid * mid == x)
return (int) mid;
else if (mid * mid < x)
low = (int) (mid + 1);
else
high = (int) (mid - 1);
}
return high;
}
另一种防止溢出的方案:
int mid = low + (high - low) / 2;
if(mid == x / mid)
do something;
else if(mid < x / mid)
do something;
else
do something;
------至所有正在努力奋斗的程序猿们!加油!!
有码走遍天下 无码寸步难行
1024 - 梦想,永不止步!
爱编程 不爱Bug
爱加班 不爱黑眼圈
固执 但不偏执
疯狂 但不疯癫
生活里的菜鸟
工作中的大神
身怀宝藏,一心憧憬星辰大海
追求极致,目标始于高山之巅
一群怀揣好奇,梦想改变世界的孩子
一群追日逐浪,正在改变世界的极客
你们用最美的语言,诠释着科技的力量
你们用极速的创新,引领着时代的变迁
——乐于分享,共同进步,欢迎补充
——Treat Warnings As Errors
——Any comments greatly appreciated
——Talking is cheap, show me the code
——诚心欢迎各位交流讨论!QQ:1138517609
——CSDN:https://blog.csdn.net/u011489043
——简书:https://www.jianshu.com/u/4968682d58d1
——GitHub:https://github.com/selfconzrr