多语言展示
当前在线:905今日阅读:176今日分享:34

【算法题】Java如何获取非负整数的平方根

题目:计算并返回非负整数 num 的平方根,要求返回一个整数,即结果只保留整数部分,小数部分将被舍去。核心考点:通过二分查找提升算法效率,并且注意整数的越界溢出问题
工具/原料
1

Eclipse

2

JDK1.8

方法/步骤
1

通过二分查找法,获取非负整数的平方根图示,将起点low定为 0,终点high定为参数值的 1/2,通过二分查找的方式,获取结果值,注意为防止平方运算中出现溢出越界的情况,low,high 以及中值 mid 全部声明为 long 类型。

2

编写测试代码图示,主方法中,通过调用上述方法获取指定值的平方根,并打印到控制台

3

运行测试代码图示,运行主方法,观察控制台的输出,符合预期,算法没有问题

4

算法考点分析该算法题目主要考察利用二分查找来提升效率,并且在计算过程中,需要注意应对越界溢出的问题,这里通过将变量声明为 long 类型来避免越界问题比较简单。

注意事项
1

学会通过二分查找提升程序效率

2

数值计算过程中,要有意识去防范越界溢出,通常数值溢出不会报错,但会引起奇怪的问题

推荐信息