代码改变世界

实现sqrt函数

2021-03-02 20:56  legend聪  阅读(174)  评论(0编辑  收藏  举报
实现这个函数主要用二分法,如果要求四舍五入就设计一个误差。比如0.05,然后不断迭代,最后结果用round输出。如果是忽略小数的话那么可以找右边界,小于mid*mid<x的右边界
class Solution {
static double e=0.05;
public static int mySqrt(double x) {
double left=0;
double right=(double)x+1;
double mid=left+(right-left)/2;
while(Math.abs(x-mid*mid)>e){
mid=left+(right-left)/2;
if(mid*mid<x){
left=mid;
}else{
right=mid;
}
}
return Math.round((float) mid);
}

public static void main(String[] args) {
int m= 99;
System.out.println(mySqrt(m));

System.out.println("he");
}
}