[LinkedIn] Find Sqrt square root of a number (binary search)
2015-04-06 14:46
435 查看
public int sqrt(int x) { if (x < 2) return x; double epsilon = 0.000001; double left = 0, right = x; double ans = 0, sqr = 0; while (true) { ans = left + (right - left) / 2.0; sqr = ans * ans; if (sqr <= x+epsilon && sqr >= x-epsilon) { break; } else if (sqr > x+epsilon) { right = ans; } else { left = ans; } } return (int)ans; }
for double
public double sqrt(double x) { if (x < 0) return -1; if (x == 0 || x == 1) return x; double epsilon = 0.000001; double left = 0, right = x; if(Double,compare(x,1.0) < 0) { right = 1.0; } while (Double.compare(right-left, epsilon) > 0) { double mid = (right + left)/ 2.0; double midSqr = mid * mid; if(Double.compare(midSqr, x) == 0) { return mid;//find exact solution } else if(Double.compare(midSqr, x) < 0) { left = mid; } else { right = mid; } } return (left + right) / 2.0; }
相关文章推荐
- Algorithm to find square root of an algorithm
- LeeCode-Sqrt(x)Implement int sqrt(int x). Compute and return the square root of x.
- perfect squares find the least number of perfect square numbers (1, 4, 9, 16, ...) which sum to n
- find all pairs of elements in a balanced BST that sum to a certain number
- 【Leetcode】Given a binary tree, find all root-to-leaf paths whose sum equals a given number
- Find the Root Folder Name of the SD Card.
- Find whether a given number is a power of 4 or not
- [已解决]nginx: [emerg] invalid number of arguments in "root" directive in /etc/nginx/nginx.conf:45
- LeetCode.50(69\367\633) Pow(x,n)&&Sqrt(x)&&Valid Perfect Square&&Sum of Square Numbers
- Please read "Security" section of the manual to find out how to run mysqld as root!错误解决
- Leetcode--->Given n points on a 2D plane, find the maximum number of points that lie on the same str
- Find the minimum number of coins
- [LinkedIn] Array of products of all other numbers (except/without the current number ) (no division)
- [LinkedIn] Find target number in 2D sorted array (matrix)
- float number square root
- Please read “Security” section of the manual to find out how to run mysqld as root!错误解决(转)
- 题解LeetCode UglyNumber - FindFirstCommonNode - GetNumberOfK
- Codeforces 612E - Square Root of Permutation (置换+构造)
- rsync - find - perl - Super fast delete a folder with large number of files
- find square root using "bisection method"