本文主要是介绍【面试题LeetCode69】求一个正数的开方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
面试中遇到的是:给一个正数,包括浮点数,求它的开方,精度为0.01,二分查找的思路。
实现代码:
public class Sqrt {public static void main(String[] args) {int num = 2147395599;System.out.println(sqrt(num));}private static int sqrt(int num) {if(num==0||num==1)return num;long low = 0;long high = num;while(low<high){long mid = (low+high)/2;if(mid==low)return (int)mid;else if(mid*mid-num>0)high=mid;else if(mid*mid-num<0)low=mid;else return (int)mid;}return 0;}
}
结果:
46339
这篇关于【面试题LeetCode69】求一个正数的开方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!